UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
Witam,
Po udanym skalibrowaniu sondy Ph przyszedł czas na wysłanie odczytów do Domoticza... i tu zaczeły się schody.
Czy ktoś z kolegów może pomóc jak napisać taką regółę? Czytałem, próbowałem i nic nie działa.
Rule1 ON analog#a0 DO publish domoticz/in {"idx":9,"%value%"} ENDON
@irekdz1 jesteś blisko
rule on Tele-ANALOG#A0 do publish domoticz/in {"idx":9,"nvalue":0,"svalue":"%value%"} endon
i trzeba włączyć regułę
rule1 1
Reguła ruszyła ale w domoticzu nie mam odczytów. Ustawiony mam "Custom sensor".
W konsoli tasmoty mam takie dane:
23:43:31.169 CMD: rule1 1 rule on Tele-ANALOG#A0 do publish domoticz/in {"idx":9,"nvalue":0,"svalue":"%value%"} endon
23:43:31.177 MQT: stat/tasmota_7660E3/RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":86,"Free":425,"Rules":"on Tele-ANALOG#A0 do publish domoticz/in {\"idx\":9,\"nvalue\":0,\"svalue\":\"%value%\"} endon"}}
23:44:04.388 MQT: tele/tasmota_7660E3/STATE = {"Time":"2021-05-01T23:44:04","Uptime":"0T12:25:12","UptimeSec":44712,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":2,"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","Wifi":{"AP":1,"SSId":"Aquarium-id1","BSSId":"D8:47:32:0B:F6:22","Channel":3,"RSSI":62,"Signal":-69,"LinkCount":1,"Downtime":"0T00:00:04"}}
23:44:04.402 MQT: tele/tasmota_7660E3/SENSOR = {"Time":"2021-05-01T23:44:04","ANALOG":{"pH0":6.81}}
Ta reguła wysyła do domoticz surowe dane z ADC (analog)
@isom, Czyli mam rozumieć że nie odczytam w domoticzu wartości Ph?
A odczyt surowych danych to ADC 0-1024? Jeśli tak to jak je odczytać w domoticzu?
@irekdz1 Pewnie odczytasz ale nie podajesz nic sensownego żeby wyciągnąć wnioski , prosiłeś o regułę do wysyłania wartości surowych danych do domoticz i taką podałem .
Jak w tasmota ustawisz na ADC surowe dane to CustomSensor z idx 9 musi je odebrać , a w tasmota dostaniesz coś w tym stylu
17:22:47 MQT: domoticz/in = {"idx":119,"nvalue":0,"svalue":"202"}
Tylko idx będzie 9 a nie 119
- @isom Masz rację więc zacznę od początku. Zrobiłem sterownik do akwarium na ESP8266 i wgrałem Tasmotę 9.4.0 (knx). Obsługuje on 3 przekaźniki, 3 włączniki, termometr DS18B20 (aktualnie nie podłączony) i Ph-meter PH-4502C (analogowy). Ph-meter skalibrowałem według dokumentacji Tasmota i działa dobrze wyświetlając wartości na stronie Tasmota. Mam też Domoticza postawionego na Raspberry Pi Zero W, który ma docelowo obsługiwać sterowniki do akwarium, sterowniki oświetlenia itp. Włączniki do przekaźników w Domoticzu działają. Do odczytu pH w Tasmocie A0 mam ustawione na ADC pH. (dostępne chyba od poprzedniej wersji).
- Problemem dla mnie jest jak wysłać odczyt wartości pH z Tasmota do Domoticza 😭. Mam nadzieję że nie przesadziłem z opisem 😉.
@irekdz1 jeżeli w tasmota ten czujnik się przedstawia jako pH0 to w takiej samej regule musisz zmienić
rule on Tele-ANALOG#A0
na
rule on Tele-ANALOG#pH0
Dalej nie działa 😔 . Zwróć uwagę że wpisałem w rule ANALOG#pH0, a zwróciło ANALOG#A0 i brak odpowiedzi z Domoticza.
Czy testowałeś ten kod u siebie i działa ? Bo ja już nie mam pojęcia co źle robię. może inną wersję Tasmoty wgrać.
Takie mam dane z konsoli:
22:28:46.992 CMD: Rule1 1 Rule ON Tele-ANALOG#pH0 DO publish domoticz/in {"idx":9,"nvalue":0,"svalue":"%value%"} ENDON 22:28:46.000 MQT: stat/tasmota_9E5860/RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":51,"Free":460,"Rules":"ON analog#a0 DO publish domoticz/in {\"idx\":9} ENDON"}} 22:30:09.450 MQT: tele/tasmota_9E5860/STATE = {"Time":"2021-05-02T22:30:09","Uptime":"0T00:05:11","UptimeSec":311,"Heap":20,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":34,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Aquarium-id1","BSSId":"D8:47:32:0B:F6:22","Channel":3,"RSSI":30,"Signal":-85,"LinkCount":1,"Downtime":"0T00:00:03"}} 22:30:09.480 MQT: tele/tasmota_9E5860/SENSOR = {"Time":"2021-05-02T22:30:09","ANALOG":{"pH0":20.89}} 22:34:59.412 APP: Serial logging disabled 22:35:09.454 MQT: tele/tasmota_9E5860/STATE = {"Time":"2021-05-02T22:35:09","Uptime":"0T00:10:11","UptimeSec":611,"Heap":22,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Aquarium-id1","BSSId":"D8:47:32:0B:F6:22","Channel":3,"RSSI":28,"Signal":-86,"LinkCount":1,"Downtime":"0T00:00:03"}} 22:35:09.466 MQT: tele/tasmota_9E5860/SENSOR = {"Time":"2021-05-02T22:35:09","ANALOG":{"pH0":145411312.00}}
Nie mam takiego czujnika więc nie testowałem spróbuj
Rule on tele-9E5860#SENSOR do publish domoticz/in {"idx":9,"nvalue":0,"svalue":"%value%"} endon
Cześć @isom, nie działa ☹️
To mam w konsoli:
18:40:13.053 CMD: Rule1 1 Rule on tele-9E5860#SENSOR do publish domoticz/in {"idx":9,"nvalue":0,"svalue":"%value%"} endon 18:40:13.063 MQT: stat/tasmota_7660E3/RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":86,"Free":425,"Rules":"on Tele-ANALOG#A0 do publish domoticz/in {\"idx\":9,\"nvalue\":0,\"svalue\":\"%value%\"} endon"}} 18:43:38.506 MQT: tele/tasmota_7660E3/STATE = {"Time":"2021-05-03T18:43:38","Uptime":"0T00:05:12","UptimeSec":312,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","Wifi":{"AP":1,"SSId":"Aquarium-id1","BSSId":"D8:47:32:0B:F6:22","Channel":3,"RSSI":44,"Signal":-78,"LinkCount":1,"Downtime":"0T00:00:04"}} 18:43:38.542 MQT: tele/tasmota_7660E3/SENSOR = {"Time":"2021-05-03T18:43:38","ANALOG":{"pH0":6.78}} 18:45:08.500 MQT: stat/tasmota_7660E3/RESULT = {"POWER1":"ON"} 18:45:08.503 MQT: stat/tasmota_7660E3/POWER1 = ON 18:45:11.586 MQT: stat/tasmota_7660E3/RESULT = {"POWER2":"ON"} 18:45:11.589 MQT: stat/tasmota_7660E3/POWER2 = ON 18:45:13.320 MQT: stat/tasmota_7660E3/RESULT = {"POWER3":"ON"} 18:45:13.323 MQT: stat/tasmota_7660E3/POWER3 = ON 18:48:28.491 APP: Serial logging disabled 18:48:38.477 MQT: tele/tasmota_7660E3/STATE = {"Time":"2021-05-03T18:48:38","Uptime":"0T00:10:12","UptimeSec":612,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER1":"ON","POWER2":"ON","POWER3":"ON","Wifi":{"AP":1,"SSId":"Aquarium-id1","BSSId":"D8:47:32:0B:F6:22","Channel":3,"RSSI":32,"Signal":-84,"LinkCount":1,"Downtime":"0T00:00:04"}} 18:48:38.491 MQT: tele/tasmota_7660E3/SENSOR = {"Time":"2021-05-03T18:48:38","ANALOG":{"pH0":6.78}}
Bez czujnika też wyświetla wartości pH, tylko skaczą.
Jak byś znalazł chwilkę czasu i chęci by sprawdzić w praktyce u siebie to był bym bardzo wdzięczny 🤗
@irekdz1 tylko że ty nic nie zmieniłeś , zobacz na drugi wiersz w tym logu , który wstawiłeś , reguła dalej chce wysyłać analog#a0
Powinieneś wykasować starą regułę , dodać nową i uruchomić nową
Kasowanie reguły to
Rule1 "
@isom... jesteś wielki 🤩
Reguła działa, nie kasowałem starej (nawet nie wiedziałem że się ją kasuje 😱 ) bo wydawało mi się że ona się nadpisuje. No ale człowiek uczy się całe życie i ..... .
Użyłem tej reguły i do Domoticza są wysyłane wartości pH.
Rule ON Tele-ANALOG#pH0 DO publish domoticz/in {"idx":9,"nvalue":0,"svalue":"%value%"} ENDON
Może jeszcze komuś się to przyda.
@isom jeszcze raz wielkie dzięki 😀