Moin Zusammen,
es ging um diesen Beitrag von mir.
Florian.Reinartz hat geschrieben: ↑1. Mai 2022 21:27
Das ist nun meine Lösung:
Rules:
Code: Alles auswählen
rule "Buderus Störung auswerten"
when
Item Buderus_notifications_error changed or
Item Buderus_notifications_nbrErrors changed or
Item Buderus_notifications_Text changed
then
//Buderus_notifications_Text.postUpdate("2022-04-24T01:42:28 act:A dcd:H07 ccd:1017 orig:8 cat:R fc:18 dlv:8")
val buderus_act = (Buderus_notifications_Text.state.toString.split(' ').get(1)).split(':').get(1)
val buderus_dcd = (Buderus_notifications_Text.state.toString.split(' ').get(2)).split(':').get(1)
val buderus_ccd = (Buderus_notifications_Text.state.toString.split(' ').get(3)).split(':').get(1)
//logInfo("split String", "buderus_act ist {}", buderus_act)
//logInfo("split String", "buderus_dcd ist {}", buderus_dcd)
//logInfo("split String", "buderus_ccd ist {}", buderus_ccd)
Buderus_Stoerung_Klasse.postUpdate(buderus_act)
Buderus_Stoerung_Code.postUpdate(buderus_dcd + "-" + buderus_ccd)
if(Buderus_notifications_nbrErrors.state >= 1)
{
Buderus_Stoerung_Bit.sendCommand(ON) //Um das Item in der sitemap ein- bzw. auszublenden
}
else
{
Buderus_Stoerung_Bit.sendCommand(OFF) //Um das Item in der sitemap ein- bzw. auszublenden
}
end
Items:
Code: Alles auswählen
Number Buderus_notifications_nbrErrors "notifications_nbrErrors" {channel="km200:notification:456099396:notifications:nbrErrors"}
String Buderus_notifications_Text "notifications_Text [%s]" {channel="km200:notification:456099396:notifications:errorString"}
Number Buderus_notifications_error "notifications_error" {channel="km200:notification:456099396:notifications:error"}
String Buderus_Stoerung_Klasse "Störungsklasse [MAP(buderus_stoerung.map):%s]" <settings>
String Buderus_Stoerung_Code "Störungscode [MAP(buderus_stoerung.map):%s]" <settings>
Switch Buderus_Stoerung_Bit "Störung Ja/Nein [%s]"
Und die entsprechende MAP (enthält alle Buderus Fehler !!!
MAP:
(siehe Anhang)
Ich habe hier eine Rule veröffentlicht die ich mit Eurer Hilfe entwickelt habe.
Das Ergebnis war ein String-Item bzw. eine Notification aufs Handy mit der Störungsmeldung in Klartext.
Nun bekam ich plötzlich diese Meldung auf mein Handy:
Buderus_Stoerung_Klasse (Type=Stringitem, State=A, Label=Störungsklasse, Category=settings)
Buderus_Stoerung_Code (Type=Stringitem, State=A31-3101, Label=Störungscode, Category=settings)
und das wunderte mich.
Ich habe aber den Fehler gefunden!
Es lag - mal wieder - an mir selbst...
Ich hatte wohl seit der Einrichtung keine Störung auf der Therme wodurch es mir nie aufgefallen ist...
Es fehlte ein .state
sendNotification("
NormanNeumann@mail.org",
transform("MAP", "buderus_stoerung.map", Buderus_Stoerung_Klasse.
state.toString) + ":
" + transform("MAP", "buderus_stoerung.map", Buderus_Stoerung_Code.
state.toString))
Danke und Gruß
Florian