SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag 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:

Code: Alles auswählen

Add Items from Textual Definition
Muss ich eventuell dies über die textdatein machen??


Dann oben den String eingefügt.
Aber nun heisst das item: (Label)

Code: Alles auswählen

Störungscode [MAP(buderus_stoerung.map):%s]
was habe ich falsch gemacht??

Beim item wird der aktuelle Code H08-1018 angezeigt. Das passt soweit. Aber "klartext", ist da noch nix... :oops:

(Ich nutze openHAB 3.3)
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag von mad-mike »

Ich nochmal :oops:

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
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag von peter-pan »

Das ist natürlich richtig. Du musst unter "Einstellungen/other Add-Ons" natürlich die "MAP-Transformation" installieren.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag von mad-mike »

:oops:

Installiert und läuft sofort :)
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
Florian.Reinartz
Beiträge: 103
Registriert: 11. Apr 2022 08:47
Wohnort: bei Schwerin

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag 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
openHAB 4.1.0 (64 bit) auf einem Raspberry Pi 5 Model B Rev 1.0 mit 8GB

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag von mad-mike »

Danke, Habe es hinbekommen.
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
Florian.Reinartz
Beiträge: 103
Registriert: 11. Apr 2022 08:47
Wohnort: bei Schwerin

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag 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
openHAB 4.1.0 (64 bit) auf einem Raspberry Pi 5 Model B Rev 1.0 mit 8GB

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag 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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Florian.Reinartz
Beiträge: 103
Registriert: 11. Apr 2022 08:47
Wohnort: bei Schwerin

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag 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
openHAB 4.1.0 (64 bit) auf einem Raspberry Pi 5 Model B Rev 1.0 mit 8GB

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: SOLVED - Sting auswerten und in Stücken wieder zusammensetzen

Beitrag von mad-mike »

Code: Alles auswählen

A31-3101
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.
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Antworten