Seite 2 von 2
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 26. Nov 2022 13:13
von mad-mike
Moin. Danke schon mal.
Also habe nun die Map datei kopiert in den "Transform" ordner.
Nun habe ich ein Item erstellt über:
Muss ich eventuell dies über die textdatein machen??
Dann oben den String eingefügt.
Aber nun heisst das item: (Label)
was habe ich falsch gemacht??
Beim item wird der aktuelle Code H08-1018 angezeigt. Das passt soweit. Aber "klartext", ist da noch nix...
(Ich nutze openHAB 3.3)
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 26. Nov 2022 13:30
von mad-mike
Ich nochmal
Ich habe Item nun per textdatei erstellt.
Nun habe ich dies hier im LOG:
Code: Alles auswählen
2022-11-26 13:27:06.706 [WARN ] [rest.core.item.EnrichedItemDTOMapper] - Failed transforming the state 'NULL' on item 'Stoerung_Code' with pattern 'MAP(buderus_stoerung.map):%s': Couldn't transform value because transformation service of type 'MAP' is not available.
2022-11-26 13:27:06.709 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - couldn't transform value in label because transformationService of type 'MAP' is unavailable
was heisst service of MAP??
muss ich das installieren?
Danke und gruss
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 26. Nov 2022 14:34
von peter-pan
Das ist natürlich richtig. Du musst unter "Einstellungen/other Add-Ons" natürlich die "MAP-Transformation" installieren.
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 26. Nov 2022 18:28
von mad-mike
Installiert und läuft sofort

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 16. Dez 2022 12:57
von Florian.Reinartz
Moin Zusammen,
sorry für die verspätete Antwort.
Ja, die Störung des Heizgerätes wird dann in der Push-Mitteilung bzw. in der UI als Klartext angezeigt.
Liegt z.B. der Fehler H07 mit der Beschreibung 1017 vor wandelt die Rules diese beiden Infos in folgenden String um: H07-1017
In der Map-Datei steht dazu Wasserdruck zu niedrig.
In der Puschmitteilung kann ich dann z.B. den Schweregrad der Störung Buderus_Stoerung_Klasse und die Störungsbeschreibung Buderus_Stoerung_Code anzeigen lassen.
Die MAP-Dateien sind sozusagen Übersetzungsdateien...
Gruß
Florian
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 18. Dez 2022 16:18
von mad-mike
Danke, Habe es hinbekommen.
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 3. Mär 2023 13:55
von Florian.Reinartz
Moin Zusammen,
habe seit einigen Tagen das Problem, dass der Stind nicht mehr korrekt aufgelöst wird.
Bekomme aktuell Meldungen in dieser Form:
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)
Liegt wahrscheinlich daran, dass ich OH geupdatet habe und dabei auch viele Bindings aktualisiert wurden.
Hat noch jemand das Problem oder liegt es doch an meinem System?
Danke und Gruß
Florian
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 3. Mär 2023 17:16
von udo1toni
Was heißt "Meldungen in dieser Form"? Wo kommt die Meldung? Die Zeile sieht erst mal völlig normal aus, in der Form habe ich das schon häufig in Logs gesehen.
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 4. Mär 2023 19:49
von Florian.Reinartz
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
Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen
Verfasst: 4. Mär 2023 19:59
von mad-mike
Denn Fehler würde ich mir nicht anzeigen lassen. In Verbindung mit einer WP tritt er öfters mal auf, und einen Moment Später ist er wieder weg.
Selten kommt´s auch mal mit einem Öl / Gas kessel vor.