Witam !
Pozdrawiam wszystkich Forumowiczów w nowym roku 🙂
Mam zainstalowanego OH normalnie w wersji 2.3 na Synology DS716+ oraz w wersji 2.4 w dockerze.
Na razie poznaję podstawy wersji 2.3 - i tu moje pytanie - Wemos d1 mini z firmwarem Tasmota przesyła mi stan kociołka gazowego z kotłowni przez mqtt - nic wielkiego - tylko stan włączony/wyłączony pobrany z diody świecącej na panelu kotła 🙂
Przesyła mi takie wartości - wyłączony kocioł - to stan niski 3, czasami 4, czasami 5, zaś kociołek włączony (pracuje) to stan wysoki - wartości zawsze powyżej 500 - czasami do 550. Jest to dla mnie czytelne - OK, dwie zupełnie różne, skrajne wartości. Te wartości idą dalej do influxdb i oczywiście grafany. I tutaj mam pewien zgrzyt - na wykresie mam odczyty kilku czujników temperatury ds18b20 w zakresie "normalnym" do 100 oC - temperatura zasilania grzejników, podłogówki, ciepłej wody - wiadomo. I tutaj właśnie wpasowują się wartości z kociołka jako 550 oC. Być może przez zupełny zbieg okoliczności to jest temperatura w kociołku (nie mam pojęcia szczerze mówiąc) ale chciałbym żeby stan pracy kotła był reprezentowany poprzez temperaturę powiedzmy 100 oC. Oczywiście on nie podgrzewa wody w obiegu do tych 100 oC, ale chodzi tylko o pokazanie ile kocioł pracuje w czasie doby.
Fragment moich .items
Number Boiler_Room_Gas_Boiler "Kociołek gazowy [%.1f]" <heating> (Boiler_Room) {mqtt="<[broker:dom/tele/boiler_room/SENSOR:state:JSONPATH($.ANALOG.A0)]"}
Próbowałem Map Transformation Service , ale transformacja zwraca wyniki jako string i do prezentacji na wykresie się nie nadaje, próbowałem Transformation Services , ale z tego co rozumiem to tylko jest to translacji danych wejściowych z czujników itp, próbowałem Scale Transformation Service , który wydaje się że byłby idealny dla tego typu sytuacji - temperatura 0oC dla wartości poniżej 500 i 100oC dla wartości powyżej 500 ale nie dałem sobie z tym rady.
Doszedłem do momentu, gdzie należałoby chyba zrobić jakieś .rules albo skrypt i tutaj całkiem wymiękłem 🙁
Może któryś bardziej doświadczony forumowicz wesprze 😀
Hej,
ja zrobił bym to tak.
Utworzył bym sobie wirtualny item np "PiecGaz" i dane z niego "pchał" do influx'a
Następnie napisał rules'a
rule "Praca pieca gazowego"
when
Item Boiler_Room_Gas_Boiler changed
then
var stan = Boiler_Room_Gas_Boiler.state
if (stan < 10) {
PiecGaz.postUpdate(0) // 0 = wyłączony
}
if (stan > 400) {
PiecGaz.postUpdate(1) // 1 = włączony
}
end
Teraz przy wartości 0 i 1 w grafanie przy wykresie schodkowym ładnie zobaczysz kiedy i jak długo pracował piec.
W OH trzeba ustawić żeby dane do influx'a leciały co minutę.
Strategies {
everyMinute : "0 * * * * ?"
}
Czy dobre rozwiązanie? Oceń sam.
Działa !
Wielkie dzięki - nie trzeba mi było w internetach szukać tylko tutaj hasło rzucić 😀
Mam w influxdb.persist
Strategies {
every30seconds : "*/30 * * * * ?"
}
bo TelePeriod w Tasmocie na 30 sekund ustawiony.
Jeszcze raz dzięki i pozdrawiam 😎