Seite 3 von 3
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 23. Feb 2021 21:31
von udo1toni
Das sähe dann so aus:
Code: Alles auswählen
Switch HeizungPferdewasser
"Heizung Pferdewasser"
<switch>
(gPonystall)
{channel="shelly:shelly1pm:84cca8a86d0d:relay#output", autoupdate="false"}
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 24. Feb 2021 11:07
von favorit626
udo1toni hat geschrieben » Gestern 18:17
....Dann müsste eine entsprechende Überwachung den Stromfluss auswerten. Hat der Shelly Strommessung...
Da hast Du schlafende Hund geweckt, da ich das Buch von Marianne Spiller "Smart Home mit openHAB 2"
besitze, und meine Waschmaschine danach auch "smart" gemacht habe, was auch einigermaßen funktiomiert, dachte ich mir, vielleicht kann man
das ja irgendwie verwenden. Nun habe ich mir aus der Waschmaschinen-rule eine für die Pferdewasser Heizung
gebaut, zwar recht stümperhaft, geht sicherlich wesentlich eleganter aber es funktioniert.
Code: Alles auswählen
rule "Kontrolllampe Heizstab Pferdewasser !"
when
Item Shellypm1_Leistung changed
then
var Number Aktuelle_Leistung = Shellypm1_Leistung.state as DecimalType
var Number Maximale_Leistung = Shellypm1_total_Leistung.state as DecimalType
if(Aktuelle_Leistung < 0.2) {
KontrolleHeizungPferdew.sendCommand(OFF)
PferdewasserHeizstab_Zustand.postUpdate("... ist aus!")
} else {
if(Aktuelle_Leistung > Maximale_Leistung) {
Maximale_Leistung = Aktuelle_Leistung
//Waschmaschine_Maximal.postUpdate(Maximale_Leistung)
//logInfo("Waschmaschine", "Maximale Leistung: {}W.", Maximale_Leistung)
}
if(Aktuelle_Leistung > 5) {
if(Maximale_Leistung > 5) {
KontrolleHeizungPferdew.sendCommand(ON)
logInfo("Heizstab Pferdewasser ist eingeschaltet.")
sendTelegram("Openhabknut2", "Heizstab Pferdewasser ist eingeschaltet.")
PferdewasserHeizstab_Zustand.postUpdate("... ist eingeschaltet.")
}
}
}
end
bis auf die Fehlermeldung im Log, wo ich nichts mit anfangen kann.
2021-02-24 10:47:54.758 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2073.5 to 2075.9
2021-02-24 10:47:54.777 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command ON
2021-02-24 10:47:54.801 [nt.ItemStatePredictedEvent] - KontrolleHeizungPferdew predicted to become ON
==> /var/log/openhab2/openhab.log <==
2021-02-24 10:48:09.775 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Kontrolllampe Heizstab Pferdewasser !': An error occurred during the script execution: index=1, size=1
==> /var/log/openhab2/events.log <==
2021-02-24 10:48:09.754 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2075.9 to 2083.3
2021-02-24 10:48:09.762 [vent.ItemStateChangedEvent] - Shellypm1_total_Leistung changed from 0.308 to 0.343
2021-02-24 10:48:09.776 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command ON
2021-02-24 10:48:09.805 [nt.ItemStatePredictedEvent] - KontrolleHeizungPferdew predicted to become ON
2021-02-24 10:48:15.625 [vent.ItemStateChangedEvent] - Current_DateTime changed from 2021-02-24T10:47:15.596+0100 to 2021-02-24T10:48:15.599+0100
2021-02-24 10:48:15.628 [vent.ItemStateChangedEvent] - Date changed from 2021-02-24T10:47:45.329+0100 to 2021-02-24T10:48:15.599+0100
==> /var/log/openhab2/openhab.log <==
2021-02-24 10:48:21.791 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Kontrolllampe Heizstab Pferdewasser !': An error occurred during the script execution: index=1, size=1
==> /var/log/openhab2/events.log <==
2021-02-24 10:48:21.769 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2083.3 to 2088.3
2021-02-24 10:48:21.792 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command ON
2021-02-24 10:48:21.811 [nt.ItemStatePredictedEvent] - KontrolleHeizungPferdew predicted to become ON
==> /var/log/openhab2/openhab.log <==
2021-02-24 10:48:34.803 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Kontrolllampe Heizstab Pferdewasser !': An error occurred during the script execution: index=1, size=1
==> /var/log/openhab2/events.log <==
2021-02-24 10:48:34.783 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2088.3 to 2080.9
2021-02-24 10:48:34.804 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command ON
2021-02-24 10:48:34.835 [nt.ItemStatePredictedEvent] - KontrolleHeizungPferdew predicted to become ON
==> /var/log/openhab2/openhab.log <==
2021-02-24 10:48:36.805 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Kontrolllampe Heizstab Pferdewasser !': An error occurred during the script execution: index=1, size=1
==> /var/log/openhab2/events.log <==
2021-02-24 10:48:36.784 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2080.9 to 2083.3
2021-02-24 10:48:36.805 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command ON
2021-02-24 10:48:36.840 [nt.ItemStatePredictedEvent] - KontrolleHeizungPferdew predicted to become ON
Falls jemand eine Idee hat?
gruß
Knut
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 24. Feb 2021 12:25
von peter-pan
favorit626 hat geschrieben: ↑24. Feb 2021 11:07
bis auf die Fehlermeldung im Log, wo ich nichts mit anfangen kann.
Hallo Knut,
evtl. hab ich zwei Punkte die kritisch sind:
favorit626 hat geschrieben: ↑24. Feb 2021 11:07
logInfo("Heizstab Pferdewasser ist eingeschaltet.")
Das logInfo braucht zwei String-Parameter, also etwa so
Code: Alles auswählen
logInfo("Pferdekontrolle","Heizstab Pferdewasser ist eingeschaltet.")
Zu dem "sendTelegram" fehlt wahrscheinlich noch die Definition:
Code: Alles auswählen
{
"resource": "/w:/rules/homematic.rules",
"owner": "_generated_diagnostic_collection_name_#0",
"code": "org.eclipse.xtext.diagnostics.Diagnostic.Linking",
"severity": 8,
"message": "The method sendTelegram(String, String) is undefined",
"startLineNumber":xxx,
"startColumn": y,
"endLineNumber":xxx,
"endColumn": zz
}
VSC gibt mir hierzu diese Fehlermeldung aus.
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 24. Feb 2021 15:53
von favorit626
peter-pan » Heute 12:25
Das logInfo braucht zwei String-Parameter, also etwa so
Code: Alles auswählen
logInfo("Pferdekontrolle","Heizstab Pferdewasser ist eingeschaltet.")
Danke, das war der Fehler, Fehlermeldung ist weg.
peter-pan » Heute 12:25
Zu dem "sendTelegram" fehlt wahrscheinlich noch die Definition:
Das scheint Ok zu sein das funktioniert einwandfrei.
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 24. Feb 2021 17:23
von favorit626
So, jetzt habe ich die "Heizungskontroll-RULE" noch mal ganz neu aufgelegt, und zwar nach dem gleichen Prinzip
wie die RULE für die Heizug von Udo
Code: Alles auswählen
rule "Kontrolllampe Heizstab Pferdewasser !"
when
Item Shellypm1_Leistung changed
then
var Number nWatt = 2300
if(Shellypm1_Leistung.state instanceof Number)
nWatt = Shellypm1_Leistung.state as Number
var Soll = KontrolleHeizungPferdew.state
if(nWatt > 5)
Soll = ON
if(nWatt < 2)
Soll = OFF
if(KontrolleHeizungPferdew.state != Soll) {
var strMessage = "Heizung Pferdewasser ist "
strMessage = strMessage + if(Soll == OFF) "ausgeschaltet" else "eingeschaltet"
//strMessage = strMessage + " °C!"
sendTelegram("Openhabknut2", strMessage)
logInfo("heat", strMessage)
KontrolleHeizungPferdew.sendCommand(Soll.toString)
}
end
und es funktioniert super.
log:
2021-02-24 17:01:58.498 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'Pferdewasser.rules'
==> /var/log/openhab2/events.log <==
2021-02-24 17:02:01.659 [ome.event.ItemCommandEvent] - Item 'HeizungPferdewasser' received command ON
2021-02-24 17:02:02.046 [vent.ItemStateChangedEvent] - HeizungPferdewasser changed from OFF to ON
2021-02-24 17:02:05.161 [vent.ItemStateChangedEvent] - Shellypm1_Signalstaerke changed from 0 to 1
2021-02-24 17:02:05.976 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 0.0 to 2054.0
==> /var/log/openhab2/openhab.log <==
2021-02-24 17:02:06.893 [INFO ] [.eclipse.smarthome.model.script.heat] - Heizung Pferdewasser ist eingeschaltet
==> /var/log/openhab2/events.log <==
2021-02-24 17:02:06.896 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command ON
2021-02-24 17:02:07.210 [vent.ItemStateChangedEvent] - KontrolleHeizungPferdew changed from OFF to ON
2021-02-24 17:02:08.373 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2054.0 to 2051.6
2021-02-24 17:02:11.589 [vent.ItemStateChangedEvent] - Shellypm1_Signalstaerke changed from 1 to 0
2021-02-24 17:02:14.810 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2051.6 to 2046.8
2021-02-24 17:02:20.475 [vent.ItemStateChangedEvent] - Shelly1_KontrolleHeizung_Signalstaerke changed from 2 to 1
2021-02-24 17:02:24.049 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2046.8 to 2044.4
2021-02-24 17:02:35.988 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2044.4 to 2049.2
2021-02-24 17:02:36.290 [vent.ItemStateChangedEvent] - Shellypm1_Signalstaerke changed from 0 to 1
und ausschalten :
2021-02-24 17:08:42.470 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2058.8 to 2056.4
==> /var/log/openhab2/openhab.log <==
2021-02-24 17:08:48.698 [INFO ] [.eclipse.smarthome.model.script.heat] - Pferdewasser hat mehr als 10 °C!
2021-02-24 17:08:49.211 [INFO ] [.eclipse.smarthome.model.script.heat] - Heizung Pferdewasser ist ausgeschaltet
==> /var/log/openhab2/events.log <==
2021-02-24 17:08:48.393 [vent.ItemStateChangedEvent] - Wassertemp_PferdestallTCP changed from 17.6 to 17.8
2021-02-24 17:08:48.702 [ome.event.ItemCommandEvent] - Item 'HeizungPferdewasser' received command OFF
2021-02-24 17:08:49.005 [vent.ItemStateChangedEvent] - Shellypm1_Leistung changed from 2056.4 to 0.0
2021-02-24 17:08:49.014 [vent.ItemStateChangedEvent] - HeizungPferdewasser changed from ON to OFF
2021-02-24 17:08:49.214 [ome.event.ItemCommandEvent] - Item 'KontrolleHeizungPferdew' received command OFF
2021-02-24 17:08:49.540 [vent.ItemStateChangedEvent] - KontrolleHeizungPferdew changed from ON to OFF
2021-02-24 17:08:55.053 [vent.ItemStateChangedEvent] - Shelly1_KontrolleHeizung_Signalstaerke changed from 1 to 2
2021-02-24 17:09:02.094 [vent.ItemStateChangedEvent] - Shellypm1_total_Leistung changed from 0.205 to 0.240
2021-02-24 17:09:10.264 [vent.ItemStateChangedEvent] - Shelly1_KontrolleHeizung_Signalstaerke changed from 2 to 1
2021-02-24 17:09:18.390 [vent.ItemStateChangedEvent] - Wassertemp_PferdestallTCP changed from 17.8 to 17.9
2021-02-24 17:09:25.439 [vent.ItemStateChangedEvent] - Shelly1_KontrolleHeizung_Signalstaerke changed from 1 to 2
Jeztz bin ich voll begeistert
Danke euch beiden für vorzügliche Hilfe.
Gruß
Knut
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 24. Feb 2021 19:20
von udo1toni
So zum Hintergrund: Logmeldungen gibt es ja in verschiedenen Leveln, das wird über den Befehl definiert, deshalb gibt es logDebug(), logInfo(), logWarn() und logError().
Eine Eigenheit von Loggern ist, dass der Anwender
zur Laufzeit wählen kann, wieviel geloggt wird. Man kann also bestimmen, dass gar nichts geloggt wird, dass nur Logs der Stufe Error geloggt werden, dass Meldungen der Stufen Warn und Error geloggt werden, dass Meldungen der Stufen Info, Warn und Error geloggt werden oder dass alle Meldungen (also auch Debug) geloggt werden. Wie gesagt, das geht während das Programm läuft.
Und es kommt noch besser, man kann das extrem feingranular steuern, für jede Rule einzeln, wenn es sein muss (genauso wie für jedes einzelne Binding!). Dazu müssen aber die Logmeldungen einer Kategorie zugewiesen werden. Das geschieht über den Loggernamen. Der Loggername ist der erste String, der angegeben wird und erscheint im Log rechtsbündig bis zu einer bestimmten Länge (25 Zeichen? Bin grade unsicher...) in eckigen Klammern. Das ist NICHT Teil der Meldung! Die Meldung steht Linksbündig hinter dem - nach der ersten eckigen schließenden Klammer.

Der Loggername ist nicht optional, genauso wie ein Meldetext.
Gesendet von iPad mit Tapatalk
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 25. Feb 2021 12:18
von peter-pan
favorit626 hat geschrieben: ↑24. Feb 2021 15:53
Das scheint Ok zu sein das funktioniert einwandfrei.
Da ich dieses Binding bzw. diese Funktion nicht benutze, habe ich mich hier auf die VSC-Meldungen verlassen. Ich habe aber noch mal kurz im Telegram-Binding (OH-V2) quer gelesen. Kann es sein, dass du noch die Binding-Version V1 bzw. eine Action-Version dazu benutzt?
Hier mal ein
Link zur V2-Verison(Action). Und
ein Link, zu einem Beispiel, wie man das in einer Rule "händeln" kann.
Sollte das bei dir der Fall sein (Binding-Version V1), solltest du dir überlegen, ob du nicht auf die aktuelle Version umsteigen willst, da V1 unter OpenHAB 3 nicht mehr funktioniert. Ansonsten hat sich's erledigt, da es ja zu deiner Zufriedenheit klappt.

Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 25. Feb 2021 16:42
von favorit626
Hallo peter-pan,
das Telegram Binding ist 2.5.12, aber das Telegram Action ist tatsählich noch 1.1.... aber Meldungen über Telegram schicken
läuft noch. Früher oder später werde ich dann auch wohl Schritt für Schritt auf OH3 um steigen, und dann wird Problem für Problem gelöst.
Aber trotzdem Danke für die Bemühungen.
Gruß
Knut
Re: MQTT Probleme zwei openHAB´s verbinden
Verfasst: 25. Feb 2021 16:48
von udo1toni
Die V1 Action sollte man nicht mehr verwenden, das V2 Binding hat eine entsprechende Action eingebaut, sie ist lediglich leicht anders aufzurufen (Mans muss einen Handle erstellen, in der Form TelegramAction = getAction(“telegram”,...)
Gesendet von iPad mit Tapatalk