Cześć,
zauważyłem, że czasem po resecie OPENHAB nie pobiera mi aktualnej pozycji przełącznika SONOFF z AFE.
Zacząłem szukać i znalazłem info, że aby sprawdzić aktualną pozycję przełącznika (on/off) trzeba wysłać komendę
/mqttTopic/switch/cmd get
pytanie - jak to zrobić w OPENHAB ? bo przecież nie będę wysyłał co sekundę sprawdzenia pozycji przełącznika?
Macie jakieś sprawdzone u siebie "rules" i "items"?
Hey
jedno z rozwiązań to
- możesz odpalić regułe zaraz po uruchomieniu openHAB:
- i wysłac wiadomośc korzystając z Action: MQTT
Ja u siebie tego nie mam, ale tak właśnie zrobiłbym.
U siebie przechowuje stan każdego item w bardzo prostej i lekkiej bazie MapDB.
Ta baza przechowuje tylko ostatnią wartości item. Przy starcie wartość początkowa każdego item jest odczytywana i ustawiania właśnie z tej bazy. Bardzo rzadko ma pewnie sytuację, że mam rozjazd między stanem aktualnym przełącznika a tym co jest w openHAB - to pewnie dlatego, że restart openHAB to krótka sprawa.
Ale najpewniejsze rozwiązanie to pewnie to co Ci zasugerowałem.
to chyba jednak błąd najnowszej wersji, bo jakoś dziwnie raz pobiera a raz nie pobiera danych z MQTT, a wczoraj zainstalowałem wersję 2.5.0 M1. Muszę chyba wrócić do 2.4.0 i w ogóle wrócić do binding 1.x bo to jednak chyba lepiej chodziło...
a jak macie u siebie? binding 2.4 czy 1.x?
Ja działam zgodnie ze starą zasadą: "Jak działa, to nie naprawiaj" i pozostałem na wersji 1.x
Poza tym mam już ponad 20 urządzeń na MQTT, więc dodatkowo nie chce mi się tracić czasu, jak obecne działanie mi odpowiada.
Zaraz po uruchomieniu puszczam przegląd stanów czujników regułą: when System started then ...
Co prawda sypie mi wtedy kilkoma błędami, bo mam zrobiony pomiar energii elektrycznej na regułach, a tam stany zmieniają się szybko (występują hazardy w dostępie do zapisu stanu itema), ale poza czerwonymi wpisami w logu nic złego się nie dzieje, więc ignoruję to.
no i właśnie też zastanawiam się,czy jednak nie przejść na 1.x.
U mnie wyświetlało błąd na 2.4 - java.lang.Exception: No MQTT client
https://community.openhab.org/t/mqtt-generic-thing-java-lang-exception-no-mqtt-client/61444
jest to niby znany problem rozwiązany w wersji 2.5 SNAPSHOT. Ale w wersji 2.5 sypie innymi błędami...
rozwiązałem to dodając mqtt.things ręcznie jako plik.
Bridge mqtt:broker:MyMosquitto "Mosquitto MQTT Broker" @ "MQTT" [
host="192.168.31.208",
secure=false,
clientid="openhab",
port=1883,
qos=1,
retain=true,
keep_alive_time=60000,
reconnect_time=6000,
clientID="xxxxx",
username="xxxxx",
password="xxxxx"
]
ja w 2.4 siedzę (informacyjnie)
na chwilę obecną uruchomiłem obejście błędu tak jak napisałem wyżej. Dodatkowo uruchomiłem regułę:
rule "Sonoff init"
when
System started
then
publish("mosquitto", "/wlacznik1/switch/cmd", "get")
publish("mosquitto", "/wlacznik2/switch1/cmd", "tet")
publish("mosquitto", "/wlacznik2/switch2/cmd", "get")
publish("mosquitto", "/lampa-sofa/switch/cmd", "get")
publish("mosquitto", "/lampa-tv/switch/cmd", "get")
end
Teraz wszystko działa jak trzeba. Zobaczymy jak długo?:)
super! 3maj się
Hej @adrian,
konfiguruję właśnie mapDB.
Czy mógłbyś podać jak masz ustawiony warunek zapisu w mapdb.persist ?
bede dopiero w domu w piatek zeby dokładnie podesłać co mam
- na pewno robie wszystkie elementy
- strategia: everyChange oraz restoreOnStartup
Coś takiego chyba:
Items {
* : strategy = everyChange, restoreOnStartup
}
uruchomiłem influxDB dodatkowo do rysowania wykresów. plik persist z tego co szukałem wygląda tak samo.
Teraz muszę chwilę poczekać, aż nazbiera trochę danych i zobaczymy czy wykres zacznie działać.
edit: działa! 😀