Seite 1 von 1

Item Änderung mit when nach dsl übersetzen

Verfasst: 27. Dez 2023 17:04
von Joerg
Hallo,
ich hänge gerade an folgendem Proplem:
In einer alten rule habe ich stehen:

Code: Alles auswählen

when
    Item Fenster_Gaeste_WC_LEQ0405783_1_State changed      // Zustand Fensterkontakt hat sich geändert
Nun will ich das in einer dsl-rule nachbauen und scheitere kläglich. Zum einen gibt es kein "when" und wohl auch kein changed.
Wie aber mache ich das?
Aus dem was ich darüber gefunden habe werde ich nicht schlau.
Gruß Jörg

Re: Item Änderung mit when nach dsl übersetzen

Verfasst: 27. Dez 2023 22:54
von udo1toni
Ähm... Das IST Teil einer DSL Rule.

Falls Du meinst, Du möchtest eine per Textdatei ($OPENHAB_CONF/rules/*.rules) angelegte Rule in eine UI-Rule überführen, dann schau mal genau hin...
Wenn Du eine UI Rule anlegst, gibt es da den when-Teil und den then-Teil. Alles unter when kommt in den when-Teil. Dort gibt es auch verschiedene Trigger, hier geht es um Items, und genauer um ein changed Ereignis. Beides ist in den UI Rules verfügbar.

Es stellt sich allerdings die Frage, warum Du überhaupt etwas an den Rules verändern willst.

Re: Item Änderung mit when nach dsl übersetzen

Verfasst: 28. Dez 2023 16:20
von Joerg
Ehrlich gesagt, weil ich nicht durchgestiegen bin.
Mein OpenHAB hat lange nicht funktioniert, weil mein Raspi 3 B+ defekt war und ich keinen neuen ordern konnte.
Jetzt habe ich einen neuen und nach einem Update hat nichts mehr funktioniert.
Dann nahm ich (mit dickem Hals) an, ich muß alle rules, die im rules-Ordner liegen in die UI übertragen, ebenfalls nahm ich bis jetzt an, DSL rules heißen die in der UI.
Für mich ist das mit den UI-rules oder eben nicht UI insgesamt sehr verwirrend.

Re: Item Änderung mit when nach dsl übersetzen

Verfasst: 28. Dez 2023 17:12
von int5749
Hola,

Update von wo nach wo? Nur von Deinem RasPi oder hast Du auch die openHAB Version geändert. Dort gab es durchaus Änderungen, welche sich auch auf Rules ausgewirkt haben.

DSL ist eine an Java angelehnte, bzw. abgeleitete Programiersprache. Wenn Du mit txt-basierten Files weiterarbeitest, werden diese dennoch in der UI (dort dann aber read-only) angezeigt.

In der UI kannst Du dann neben DSL z.B. auch Blockly oder so nutzen. Ich persöbnlich bin immer noch auf 100% txt basierender Konfiguration.

Re: Item Änderung mit when nach dsl übersetzen

Verfasst: 28. Dez 2023 17:44
von Joerg
Das kann ich alles gar nicht mehr so genau sagen, ist einfach zu lange her.
Versuche jetzt gerade wieder das Versenden per XMPP. Rule als txt und things auch txt, so wie es damals war.
Bekomme aber nur verschiedenste Fehler, obwohl das XMPP-Binding online ist.

Update: Ich dreh durch. Habe nur eine Zeile in die Sende-rule eingefügt logInfo ......
Dann wurde gesendet. Habe die Zeile entfernt und er sendet immer noch. Wer soll das denn verstehen?????

Re: Item Änderung mit when nach dsl übersetzen

Verfasst: 28. Dez 2023 22:38
von udo1toni
Meine Glaskugel versagt an der Stelle den Dienst (zu wenig konkreter Input).
Die Aussage "Nichts geht, obwohl ich alles richtig gemacht habe!" kommt häufiger. Eigentlich jedes einzelne Mal kann man dann durch Nachfragen feststellen, dass eben nicht alles richtig gemacht wurde.

Ein Raspberry Pi geht gewöhnlich nicht kaputt (es sei denn, man betreibt ihn außerhalb der Spezifikationen - Überspannung, Luftfeuchtigkeit, Beschleunigung usw.)
Was hingegen gerne mal kaputt geht, ist die (Micro-) SD-Karte oder auch mal das Netzteil. Letzteres kann wiederum zu Überspannung führen :)

Wenn eine Rule funktioniert, nachdem Du eine Zeile eingefügt und wieder entfernt hast, hast Du entweder (aus Versehen) dabei ein Zeichen gelöscht, welches die Ausführung der Rule verhindert hat (sehr gerne unsichtbare Zeichen, insbesondere, wenn man die Dateien auf einem Windows Rechner bearbeitet, aber einen ungeeigneten Editor - z.B. Notepad - verwendet), oder die Rule wurde ursprünglich nicht korrekt geladen (passiert schon mal, wenn der Start sehr durcheinander abläuft) und beim Speichern wird die Datei erneut geladen - dafür reicht sogar ein Update des Änderungszeitstempels - unter GNU/Linux mit dem Befehl touch datei zu erreichen. Lässt sich im Nachhinein nur schwer herausfinden, insbesondere, wenn man die Originaldatei (als die Rule nicht funktionierte) nicht als echte Datei vorliegen hat.

Re: Item Änderung mit when nach dsl übersetzen

Verfasst: 29. Dez 2023 17:02
von Joerg
Überspannung war wohl des Raspi's tot, weil das Steckernetzteil geknallt hat. Hat ganz schön nach verbrannter Elektronik gerochen, gut das ich zu Hause war, sonst wäre mir vielleicht die Bude abgefackelt. Überlastet war es aber nicht, sondern eher überdimensioniert und original.
Die Datei habe ich mit Linux bearbeitet, bin mit "ende"-Taste ans Ende der Zeile gesprungen und habe dann mit "Enter" die logInfo-Zeile eingefügt.
Danach funktionierte die Rule.
Habe dann die Zeile wieder gelöscht und die Rule funktionierte immer noch, wie gesagt, keine Ahnung warum.
Ist aber ja nun auch egal, funktioniert ja alles.
Gruß Jörg