Ogólny kanał pomiarowy

KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Cześć,
przejrzałem forum i znalazłem kilka wpisów "w temacie". Chciałbym go mocniej podrążyć.
Dodałem taki kanał do mojego urządzenia i nawet pojawił się w Cloudzie, skonfigurowałem go, ale... w aplikacji nic a nic (iOS).
Może coś źle robię? Może jest na Android?

Czy "Ogólny kanał pomiarowy" już niedługo? Czy może niedłuuuuuuuuuuuugo? (@klew ?) Bo nie chcę znów termometru używać.
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

Kanał ogólny z założenia niewiele pracy ze strony urządzeń końcowych wymagał.
Ale jak to wyjdzie w praniu, to ciężko powiedzieć. Na razie temat leży i czeka na swoją kolej. Teoretycznie jest wysoko na liście priorytetów, ale ja nie potrafię określić kiedy z listy priorytetów, wskoczy na listę zadań ;P
Najlepsze suple dla Twojego domu :mrgreen:
KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Czyli na razie termometr... :(
dobo
Posts: 1051
Joined: Sun Apr 07, 2019 8:14 pm
Location: Nadarzyn

Post

Poczytaj viewtopic.php?t=11785&start=150 i sam wyciągnij wnioski.
RafalL
Posts: 9
Joined: Thu Sep 07, 2023 9:16 am

Post

Hejka,

Chciałbym podłączyć się do wątku. W ramach zabawy stworzyłem czujnik światła na BH1750 jako:

Code: Select all

Supla::Sensor::Lightsensor::Lightsensor() : GeneralPurposeMeasurementBase(), lastReadTime(0), sensorInit(false) {
  channel.setType(SUPLA_CHANNELTYPE_GENERAL_PURPOSE_MEASUREMENT); // set in the parent class
  channel.setDefault(SUPLA_CHANNELFNC_GENERAL_PURPOSE_MEASUREMENT);  //what should be put here?
}


Kanał ten pojawia się w aplikacji webowej, ale nie widzę z niego żadnych odczytów wartości. Na konsoli widać poprawne (chyba) odczyty i wysyłanie danych do serwera na zmiany wartości:

Code: Select all

ligthMeter reading 2730.833252
ligthMeter reading 2730.000000
Channel(5) value changed to 2730.0
Send: [53 55 50 4C 41 14 B8 00 00 00 67 00 00 00 0E 00 00 00 05 00 00 00 00 00 00 00 00 00 00 54 A5 40 ]
Send: [53 55 50 4C 41 ]
ligthMeter reading 2730.000000
ligthMeter reading 2730.833252
Channel(5) value changed to 2730.83
Send: [53 55 50 4C 41 14 B9 00 00 00 67 00 00 00 0E 00 00 00 05 00 00 00 00 00 00 00 00 A0 AA 55 A5 40 ]
Send: [53 55 50 4C 41 ]
ligthMeter reading 2730.833252
ligthMeter reading 2730.833252
ligthMeter reading 2730.833252
ligthMeter reading 2730.833252
Ale w aplikacji webowej nic nie widać.

Po utworzeniu linku bezpośredniego i próbie odczytu z niego dostaję:

Code: Select all

curl -s -H "Content-Type: application/json" -H "Accept: application/json" -X PATCH -d '{"code":"794oeR2uquYxWh","action":"read"}' https://svr99.supla.org/direct/128
{"connected":true}
I teraz pytanie: co robię źle? Klasa Lightsensor jest mega prosta, oprócz powyższego konstruktora, jej implementacja wygląda tak:

Code: Select all

void Supla::Sensor::Lightsensor::onInit() {
  if (!lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) {
    SUPLA_LOG_DEBUG("ligthMeter init FAILED");
    sensorInit = false;
  } else {
    SUPLA_LOG_DEBUG("ligthMeter init OK");
    sensorInit = true;
  }
  channel.setNewValue(getValue());
}

double Supla::Sensor::Lightsensor::getValue() {
  if (sensorInit) {
    double value = lightMeter.readLightLevel();
    SUPLA_LOG_DEBUG("ligthMeter reading %f", value);
    return value;
  }
  return LIGHT_NOT_AVAILABLE;
}
Ktoś coś pomoże?
[email protected]
Posts: 1586
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

Nie będzie to działać dopóki nie zostanie to w pełni zaimplementowane po stronie serwera i apki. Użyj kanału termometru.
RafalL
Posts: 9
Joined: Thu Sep 07, 2023 9:16 am

Post

Aha, rozumiałem z innych wątków i wyników ankiety, że end-to-end wszystko działa, tylko brak wizualizacji na mobilkach. W aplikacji webowej ten 'widget' (czy jak to nazwać) wygląda już super dojrzale (sufixy, prefixy, skalowania), więc miałem nadzieję że coś tam już zobaczę.
Teraz wszytsko jasne, dzięki.

Return to “Ogólna dyskusja”