cześć
nie chce mi działać virtual switch. Ma obrazować działanie pieca gazowego.
*.items
Switch piec "Piec"
*.rules
rule "Update piec"
when
Item Tpiec changed
then
if (Tpiec.state > Tpiec_old.state) {
piec.state = ON
}
if (Tpiec.state < Tpiec_old.state) {
piec.state = OFF
}
end
pozd.
gerdii
a jak masz itemy Tpiec i Tpiec_old zdefiniowane w items?
Number Tpiec_old "Temperature [%.1f °C]" <temperature>
Number Tpiec "Temperature [%.1f °C]" <temperature>
i jeszcze mam rule ktora uzupelnia stan tpiec_old
rule "Tpiec Temperature String to Number"
when
Item tpiec changed
then
Tpiec.postUpdate(Float::parseFloat(String::format("%s",tpiec.state).replace(' ','')))
/* if Tpiec.state > Tpiec_old sendTelegram("bot1", "Piec dziala") */
Tpiec_old.state = Tpiec.state
end
i jeszcze *.things
Thing exec:command:tpiec "Tpiec" [command="cat /tmp/1wire/28.94479F030000/temperature", interval=60, timeout=15, autorun=false]
wiesz co tak patrze teraz
- piec.state = ON
- piec.state = OFF
to raczej nie pojdzie
zrób
- postUpdate(piec,ON)
- postUpdate(piec,OFF)
Rule 'Update piec': The name 'piec' cannot be resolved to an item or type;
🙂 próbowałem wielu różnych konfiguracji ale w dokumentacji czytałem że powinno to działać. Mam nadzieję że to nie wina openhab2 2.2.
nie masz jakiś błędnych innych elementów w tym pliku *.items
- utwórz może dodatkowy nowy plik *.items
- przenieś do niego te elementy do pieca
- poczekaj pare minut zanim openHAB odświeży konfiguracje
- sprawdź czy działa, sprawdź log czy nie ma błędów
niestety 🙁
2017-12-13 17:18:08.893 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update piec': The name 'piec' cannot be resolved to an item or type; line 12, column 17, length 4
podejsli jeszcze raz aktualna wersje wszystkich items w tej regule i sama regułę
piec.items
Switch piec "Piec"
thermo.rules
rule "Update piec"
when
Item Tpiec changed
then
// var String piec="ON"
if (Tpiec.state > Tpiec_old.state) {
postUpdate(piec, ON)
sendTelegram("bot1", "Piec ON " + Tpiec.state.toString)
}
if (Tpiec.state < Tpiec_old.state) {
postUpdate(piec, OFF)
sendTelegram("bot1", "Piec OFF " + Tpiec.state.toString )
}
end
gdy wyrzucę funkcję postUpdate to rula działa i dostaje info na telegram więc ewidentnie mu nie pasuje postUpdate.
2017-12-14 08:22:54.058 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update piec': The name 'piec' cannot be resolved to an item or type; linn 18, length 4
z błedu wynika czy nie "qma" co to jest ten piec
możesz zamienić postUpdate(piec,ON) na sendCommand(piec,ON)
robi w zasadzie to samo, ale na moje oko będziesz miał ten sam błąd
możesz załączyć jeszcze plik z log'iem: openhab.log
Hej dzięki za poświęcony czas 🙂 Działa sendCommand i postUpdate.
Pomogło przeniesienie tego wirtualnego switch do osobnego pliku a błąd był związany z tym że przepisałem ten item do pliku piec.itmes a nie do piec.items -tz czeski błąd 🙂 prawie nie do wykrycia ale czytanie logu pomaga :)...
ale to oznacza wg mnie, ze masz bledy w tym pliku *.items w którym był poprzednio ten piec, skoro zaczęło działać po przeniesieniu do nowego pliku
pozdrówko
tak też podejrzewam 🙂 tam jest rula do termostat i już wiadomo że nie działa :). OpenHab to never ending story :).