Viessmann + Notify + Reading = ???

Begonnen von o.l.i, 25 Januar 2022, 21:33:56

Vorheriges Thema - Nächstes Thema

o.l.i

Hallo FHEM Leute,

ich habe eine Viessmann Heizung (Vitodens 200) und habe diese in FHEM eingebunden. Das klappt wunderbar und wird jede Minute mit aktuellen Reading Werte befüllt.
Jetzt habe ich das Problem, dass die Verbindung zur Viesmann Cloud alle paar Wochen fehlschlägt. Dies möchte ich per Notify erkennen und signalisieren.

Und jetzt habe ich das Problem, dass mein Notify nicht auf das Reading reagiert, da sich der Readingname bei einem Fehler ändert

So sieht das Reading im normale Betriebsmodus aus. Anbei auch ein Bild.
state                                  last update: 2022-01-25 21:29:41                                     2022-01-25 21:29:41


So sieht das Reading im fehlerhaften Betriebsmodus aus. Anbei auch ein Bild.
state                                  Login failure. Check password and apiKey                         2022-01-25 21:30:41       

--> D.h. in normalen Modus heoßt das Reading "last update" und im Fehlerfalle???
Ich habe versucht das Notify auf das "state" zu machen aber da reagiert es nicht.

Jeder Input ist willkommen


Oliver


Otto123

Hallo Oliver,

der Trick wäre addStateEvent, das Modul muss es aber unterstützen. Sonst musst Du ein anderes Reading nehmen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Benni

Aber es ändert sich doch nicht der Name des Readings!
Der bleibt doch 'state'! Es ändert sich lediglich der Inhalt und darauf kann ich doch meine notify-Regex entsprechend anpassen. Ggf. unter Verwendung des vorgeschlagenen addStateEvent.
Eventuell verteile man es sogar auch tatsächlich auf 2 userReadings und triggert dann auf eins von den beiden.

Gruß Benni

o.l.i

Hallo Benni,

genau davon bin ich auch ausgegangen aber irgendwie passt es nicht. Ich habe ein Notify auf das State Reading gemacht, was einfach nur eine Email rausschickt. Das das reading jede Minute aktulisiert wird würde ich auch jede Minute eine Email erwarten. Leider kommt nicht an. Mit den anderen readings funktioniert es:
KE_Viessmann:state:.* {
  { DebianMail('oliver@laute.de', 'Notify angetrigert', $NAME.': '.$EVENT)};
}

Wenn Du Dir die Screenshots in meiner Anfrage genau anschaust, dann siehst Du, dass der Wert in normalen Modus:
last update: 2022-01-26 18:05:48t
heißt. In diesem Fall ist das Reading nicht "state" sondern last update (zumindest reagiert das Notify darauf ...

Im Störungsfall ändert es sich aber zu:
Login failure. Check password ...
--> Dort ist kein : dazwischen deswegen irgendwie nicht als Reading erkannt.

Alles sehr komisch ...

Otto123

#4
Zitat von: o.l.i am 26 Januar 2022, 18:10:53
Alles sehr komisch ...
das ist nicht komisch, das ist Prinzip!  :D Die Erklärung zu addStateEvent hast Du nicht verstanden?
Der Readingname state taucht normalerweise im Event nicht auf, deswegen kannst Du nicht drauf reagieren.
Sieht man sehr schön im Eventmonitor :) der im Übrigen der Ausgangspunkt für jedes notify sein sollte!

Deswegen zwei Lösungen: addStateEvent muss das Modul können, ich habe es nicht und weiß es nicht.
Oder ein anderes Reading mit gleichem Inhalt. Wenn es das nicht gibt, legst Du es an: mit einem userReadings (wie von Benni vorgeschlagen)
Beispiel
attr DeinDevice userReadings willi {ReadingsVal($name,'state','error')}
Und reagierst im notify auf DeinDevice:willi:.*

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Benni

#5
Zitat von: o.l.i am 26 Januar 2022, 18:10:53
Wenn Du Dir die Screenshots in meiner Anfrage genau anschaust, dann siehst Du, dass der Wert in normalen Modus:
last update: 2022-01-26 18:05:48t
heißt. In diesem Fall ist das Reading nicht "state" sondern last update (zumindest reagiert das Notify darauf ...

Im Störungsfall ändert es sich aber zu:
Login failure. Check password ...
--> Dort ist kein : dazwischen deswegen irgendwie nicht als Reading erkannt.

Alles sehr komisch ...

Der Name des Readings in FHEM ist state. Einmal ist der Inhalt (der Wert des Readings) "last update: ....." und einmal "Login Failure.....". Das ist so auch in deinen Screenshots ersichtlich.

Dass das state Reading in FHEM eine Sonderstellung einnimmt hat Otto ja bereits erklärt. Es wird im Standardverhalten beim Event zum state-Reading der Name des Readings (state) im Event weggelassen. Wenn du den Event mit Readings-Namen haben möchtest, kannst du das über das Attribut addStateEvent angeben, sofern das Modui das unterstützt.

Du kannst aber auch einfach ohne, dass der Name des Readings eingetragen wird auf die Werte triggern, die sind ja beide relativ eindeutig.

Das notify sieht dann in etwa so aus (ungetestet):


KE_Viessmann:last.update.*|KE_Viessmann:Login.failure.* {
  { DebianMail('oliver@laute.de', 'Notify angetrigert', $NAME.': '.$EVENT)};
}


Man kann sich ein notify übrigens auch direkt aus dem Event-Monitor heraus erzeugen lassen, auf den dich Otto ebenfalls bereits hingewiesen hat. Auch wenn man nicht direkt ein notify erzeugen lässt, kann man sich dort die benötigten RegExp holen. Also definitiv ein guter Startpunkt für notify, bzw. Event-RegExp generell.

gb#

Reinhard.M

Zitat von: o.l.i am 25 Januar 2022, 21:33:56
Hallo FHEM Leute,

ich habe eine Viessmann Heizung (Vitodens 200) und habe diese in FHEM eingebunden.....
Hallo Oliver,

bei deinem konkreten Problem kann ich dir leider (noch) nicht helfen, mich würde aber interessieren, wie du deine Vitodens 200 in FHEM eingebunden hast. Ich würde gerne meine Vitodens ebenfalls in FHEM einbinden.

Gruß Reinhard

Benni

Zitat von: Reinhard.M am 27 Januar 2022, 08:02:21
bei deinem konkreten Problem kann ich dir leider (noch) nicht helfen, mich würde aber interessieren, wie du deine Vitodens 200 in FHEM eingebunden hast. Ich würde gerne meine Vitodens ebenfalls in FHEM einbinden.

Thread kapern ... auch nicht die feine Englische ...  ::)

gb#

o.l.i

@Benni: Dank für deinen Hinweis. Ich habe es damit umgesetzt bekommen.

@reinhard: Ich habe dies über die Viessmann Cloud gemacht. Für FHEM gibt es dazu ein Modul. Funktioniert sehr gut und stabil

Benni

Zitat von: o.l.i am 28 Januar 2022, 14:44:20
@Benni: Dank für deinen Hinweis. Ich habe es damit umgesetzt bekommen.

Freut mich!  8)

Dann wäre es gut, wenn du den Thread über den Betreff im ersten Beitrag als gelöst kennzeichnen würdest.

gb#