Seite 2 von 3

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 20. Nov 2018 14:25
von salamander070
ok werde ich versuchen zu probieren, aber openHAB läuft auf der Synology und dann ich das Paket nicht neu starten, sondern nur beenden. Danach muss ich jedesmall die Schreibrechte wieder herstellen für die ttyACM0 ändern, warum auch immer.
Ansonsten werden die Rules eigentlich unverzüglich übernommen und auch in der LOG Datei protokoliert.

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 20. Nov 2018 14:38
von udo1toni
salamander070 hat geschrieben: 20. Nov 2018 14:25 Ansonsten werden die Rules eigentlich unverzüglich übernommen und auch in der LOG Datei protokoliert.
Was sein soll und was tatsächlich passiert, sind zwei verschiedene Paar Schuhe.
Ich hab auch schon Fehler gesucht und zigmal was geändert und an mir gezweifelt, und dann hat sich rausgestellt, dass openHAB exakt eine Änderung einfach ignoriert hat. Alles andere (vorher, nachher) hat'S gefressen, nur die eine Änderung nicht. Neustart hat dann sofort zum Erfolg geführt, und seitdem ist ein Neustart für mich immer eine gute Option, wenn ich keine offensichtlichen Fehler mehr finden kann. Hat auch schon mehrere Male funktioniert. ;)

Mit der Synolohy kenne ich mich nicht aus, zumindest, was openHAB betrifft. Allerdings dürften die Schreibrechte nicht einfach beim Beenden von openHAB weg fliegen. Neustart der Synology, ok, aber Neustart von openHAB?

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 20. Nov 2018 20:17
von salamander070
hallo udo1toni,

ja, ich bin auch verwundert mit den Dateirechten nach einem Stop des openHab Pakets in der Synology, aber zumindest fand ich diesen Weg im Netz, denn openHab ist da alles anderes als leicht zum laufen zu bekommen, auch wenn es teilweise echt an banalen Punkten scheiterte. Ich bin aktuell schon mal so froh, dass es jedenfalls eine Telegrammnachricht kommt. Ich kann dann ja immer selber nachschauen, wie die Werte sind und von Unterwegs per VPN. Das funzt. ;)
Werde aber berichten, ob es gebracht hat, aber nun läuft es ja. Da ich auch Schwierigkeiten habe ein Update für den 6*Sensor aufzuspielen und ich anfangs den Fehler gemacht hatte, den Sensor einfach aus openHab zu löschen, findet openHab danach immer den gleichen mit neuer Vergabe Nr. 1,2,3 usw. Es bringt auch nichts, den letzten aktuellen richtig zu entkoppeln. Egal, ist halt so, bekome Z-Wave Stick auch nicht auf Werkreset?
Du, siehst, alles andere als schmart. Und wenn ich noch Lust habe, werde ich openHab mal auf meinen Rasperry ausprobieren. Einer läuft eh in 24/7.

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 21. Nov 2018 17:02
von salamander070
Habe nun mal deine erste Rules probiert, dann kommt diese Info.

Code: Alles auswählen

2018-11-21 16:58:59.757 [WARN ] [ding.zwave.handler.ZWaveThingHandler] - NODE 0: Polling aborted due to exception
java.lang.NullPointerException: null
	at org.openhab.binding.zwave.handler.ZWaveThingHandler$1.run(ZWaveThingHandler.java:363) [211:org.openhab.binding.zwave:2.3.0]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
ich hatte dabei in deinen Zeilen einen Leerschritt gelöscht, dachte evtl. Tippfehler : ----.toString + " %") vor dem %. Da kam dann obiger LOG.
Nachdem ich wieder den Leerschritt drin hatte nun das. Noch hat sich aber der Wert nicht geändert werde berichten.

Code: Alles auswählen

2018-11-21 17:03:00.691 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'telegram.rules'
2018-11-21 17:03:10.482 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'telegram.rules'
2018-11-21 17:03:10.494 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'telegram.rules' is either empty or cannot be parsed correctly!
2018-11-21 17:03:11.882 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'telegram.rules'

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 21. Nov 2018 17:40
von salamander070
Hallo udo1toni,

ganz großes Dankeschön für deine Unterstützung. Es klappt nun mit deinen ersten Rules Einstellungen, wo du noch schriebst, evtl. verwirrende Zahlen. Nein die kommen zum Glück nicht. Es wird ganz toll "Luftfeuchte aktuell 49%" angezeigt bzw. an Telegramm gesendet. Die letzten Logs zeigen wohl an, dass es keinen Anstoß gab die Werte auszulesen, da der Sensor ja auch erst selber auf Veränderungen reagieren muss.
Bin begeistert das es nun so klappt.
Wenn ich nun noch mal ein Buch finde, wo ich diese Parameter selber einsetzen bzw. umsetzen könnte.

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 21. Nov 2018 19:57
von udo1toni
Es gibt tatsächlich schon ein openHAB Buch, schau mal hier: https://www.amazon.de/Smart-Home-openHA ... ds=openHAB
Marianne Spiller ist auch im Forum aktiv (allerdings verorte ich sie im Moment nur im englischen Forum... ich bin da grad etwas unsicher).

Ich hab das Buch selbst nicht, aber die Resonanz in den verschiedenen Foren war sehr positiv.

Das größte Problem dabei ist immer, dass ein Buch zwangsläufig inaktuell ist, gerade bei einer so aktiv weiterentwickelten Software wie openHAB.

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 27. Nov 2018 17:28
von salamander070
Hallo udo1toni
kannst du mir sagen warum dieser Meldung kommen?

Code: Alles auswählen

018-11-27 17:18:43.834 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:18:48.852 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:18:53.870 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:18:58.888 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:19:03.897 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:19:08.903 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:19:13.919 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
2018-11-27 17:19:18.933 [WARN ] [rialmessage.IdentifyNodeMessageClass] - Got IdentifyNodeMessage without request, ignoring. Last message was SendData.
seit Sonntag lief das ganze nicht mehr korrekt. Hatte nichts verändert, aber der 6Fach Sensor war oft offline, was mich wunderte. Ob evtl. die Verbindung zum Dongle abbrach keine Ahnung.
Nun habe ich die telegramm.rules einmal gelöscht und neu kopiert und nun gibt es wieder den gewohnten Log Eintrag. Ob es nun wieder 1a läuft kann ich noch nicht sagen. Sind die Sensoren so anfällig oder die Software so?

Code: Alles auswählen

2018-11-27 17:24:18.617 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'telegram.rules'
2018-11-27 17:24:20.440 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'telegram.rules'

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 27. Nov 2018 20:45
von salamander070
und noch eine Frage. Wie kann ich einen weiteren Luftfeuchte Sensor per Telegramm erhalten? Einfach den zweiten Sensor dazu eintragen mit gleichen Abfrageparametern?

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 28. Nov 2018 20:28
von udo1toni
salamander070 hat geschrieben: 27. Nov 2018 20:45 und noch eine Frage. Wie kann ich einen weiteren Luftfeuchte Sensor per Telegramm erhalten? Einfach den zweiten Sensor dazu eintragen mit gleichen Abfrageparametern?
Da gibt es mehrere Möglichkeiten.
Zum einen kannst Du beide Sensoren als Trigger eintragen, also im Triggerteil nach changed noch ein or dran hängen und darunter eine zweite Zeile mit dem zweiten Sensor. Im Execute-Teil der Rule (nach dem then) musst Du dann nur eine weitere Teleramm-Zeile hinzufügen, oder den Text, der mit Telegramm verschickt wird, um den zweiten Wert erweitern.
Eine weitere Variante ist, die Rule zu kopieren und die Kopie entsprechend anzupassen (aber darauf achten, dass alle Rules einen eindeutigen Namen haben).
Eine dritte Variante ist, die Items in einer Gruppe zusammenzufassen und diese Gruppe zu verwenden, um alle Werte auszugeben. Bei zwei Werten ist das eher unnötig kompliziert, aber schon bei drei gleichartigen Items spart man Code ein:

Code: Alles auswählen

var String sMeldung

rule "Luftfeuchte Gruppe"
when
    Member of gLuftfeuchte changed // gLuftfeuchte ist der Name der Gruppe
then
    sMeldung = ""
    gLuftfeuchte.members.filter[m|m.state instanceof Number].forEach[l|
        sMeldung = sMeldung + l.name+": "+l.state.toString+"% "
    ]
    sendTelegram("user1", "Luftfeuchte aktuell: "+sMeldung)
end
Die Variable sMeldung muss global definiert sein, also zu Beginn der Rules-Datei. Die Rule wird getriggert, sobald eines der Items sich geändert hat. Anschließend durchläuft die Schleife alle Member der Gruppe, die einen gültigen Status haben und setzt eine Zeile zusammen, die jeweils den Namen des Items und den zugehörigen Wert enthält.
Zu beachten ist, dass die Rule bei jeder Änderung triggert, es kann also zu vielen Meldungen kommen. Eventuell ist es dann besser, die Meldungen zu begrenzen, z.B. mit einem Timer, der jedes Mal, wenn ein Telegramm verschickt wird, gestartet wird. Das Telegramm wird dann nur verschickt, wenn der Timer nicht aktiv ist.
Oder man speichert die letzte Meldung, ruft die Rule zeitgesteuert auf und kontrolliert, ob sich der zusammengesetzte Text geändert hat. Das Telegramm wird dann nur verschickt, wenn sich die Texte unterscheiden.

Re: Hydrometer Werte bei Veränderung per Telegram erhalten

Verfasst: 30. Nov 2018 17:00
von salamander070
ok, ich nehme einfach das einfachste und habe die telegram.rules angepasst, nur wirft OG Log Fehler aus.

Code: Alles auswählen

2018-11-30 16:55:27.578 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'telegram.rules'
2018-11-30 16:55:27.628 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'telegram.rules' is either empty or cannot be parsed correctly!
2018-11-30 16:55:28.848 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'telegram.rules' has errors, therefore ignoring it: [4,2]: no viable alternative at input ':'
[7,60]: mismatched input ':' expecting ')'
[7,67]: mismatched input ':' expecting 'end
geänderte telegram.rules

Code: Alles auswählen

rule "Luftfeuchte"
when
    Item ZWaveNode5ZW100MultiSensor6_SensorRelativeHumidity changed or 
    Item zwave:device:5e855e33:node6:sensor_relhumidity changed
then
    sendTelegram("user1", "Luftfeuchte aktuell: " + ZWaveNode5ZW100MultiSensor6_SensorRelativeHumidity.state.toString + " %")
    sendTelegram("user1", "Luftfeuchte 2 aktuell: "  + zwave:device:5e855e33:node5:sensor_relhumidity.state.toString + " %")
end