LCN Dynamischer Text

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

Antworten
Burkhard
Beiträge: 3
Registriert: 28. Mai 2022 07:59

LCN Dynamischer Text

Beitrag von Burkhard »

Hallo Gemeinde

wende mich erstmalig an Sie, natürlich mit einer Frage :?: .
Vorher aber kurz zu mir: Bin seit einigen Wochen nun in OpenHAB 3 unterwegs. Mein Haus ist komplett mit LCN ausgerüstet, also Lichter, Heizung, Jalousien, Fenster/Türkontakte, Öffner, WIH, ..... (ca 25 Module). All diese hab ich auch schon in OH3 eingebunden, eine Page gebaut, auf der die LCN Funktionaltäten, IP Kamera, Müllkalender, Anwesenheitsstatus, .. in trauter Eintracht ihren Dienst versehen :) . Herzlichen Dank an bangertech.de, andis-simple-it-stuff.com und natürlich an dieses Forum, aus dem ich so viel gelernt habe.

Nun zu meiner Frage: Ich möchte in einem GT10 die aktuelle und und zukünftige Wetterlage darstellen (analog zu Beitrag von HARTEKNUT, null in Rule). OpenWeatherMap Binding vorhanden und online, in der Pro Modul (bei mir) S000M032 auf "Dynamischer Text". Analog zu dem Beispiel im LCN Binding hab ich eine Rule gebastelt um Zugriff auf das GT10 zu testen:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: Module15LCNSH6_Binarsensor2
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: >-
        val actions = getActions("lcn","lcn:module:[u]b827ebfea4bb[/u]:S000M032")
            actions.sendDynamicText(1, "Test 123 CO₂ öäü߀") // row 1
    type: script.ScriptAction
Der Trigger ist natürlich nur zum Testen. Was muss hier eingetragen werden? Die Binding Beschreibung ist für mich nicht klar, UII_PCK, MAC-Adresse des Geräts, auf dem das PCK-Gateway ausgeführt wird, Seriennummer des Moduls, ..?? Ich bekomme jedenfalls mit allen Versuchen derzeit keine Reaktion am GT10, als auch nicht auf dem LCN Monitor.
Sorry das es etwas lang geworden ist, und es hat ein LCN´ler erbarmen mit einem Newbie.

Viel Dank im voraus

Burkhard

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

Re: LCN Dynamischer Text

Beitrag von udo1toni »

Der erste Fehler ist, dass Du JavaScript als Scriptsprache ausgewählt hast, das Script ist aber ein DSL Script.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Burkhard
Beiträge: 3
Registriert: 28. Mai 2022 07:59

Re: LCN Dynamischer Text

Beitrag von Burkhard »

Hallo Udotoni
vielen Dank für den Hinweis. Mit den Scriptsprachen steh ich noch auf Kriegsfuß, hab es bisher mit durchklicken und/oder Code Anpassung von vorgegebenen Widgets, Pages usw, geschafft.

Ich versuch noch mal meine Frage präzisere zu stellen, nehm das Beispiel aus dem Binding:

Code: Alles auswählen

rule "Hit key C4 hourly"
when
    Time cron "0 0 * * * ?"
then
    val actions = getActions("lcn","lcn:module:b827ebfea4bb:S000M010")
    actions.hitKey("C", 4, "HIT")
end 
( das ist jetzt ein DSL Script oder?)
Mir ist nicht klar, was sich hinter :b827ebfea4bb: verbirgt. Aus der Binding Doku ist das (für mich) nicht ersichtlich.

Nochmal Dank
Burkhard

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

Re: LCN Dynamischer Text

Beitrag von udo1toni »

Ja, das ist eine DSL Rule, und zwar die Version, welche in einer Textdatei angelegt wurde.
Du hast die Rule oben über die UI erstellt, das ist dann der Teil zwischen then und end (ohne die beiden Schlüsselworte).
Der Teil zwischen when und then ist der Trigger, der über die UI eben in der Rubrik when eingetragen wird.

Bitte achte darauf, beim posten von Code diesen auch als Code zu markieren (ich habe das in Deinen vorigen Posts erledigt). Im vollständigen Editor gibt es dafür den Knopf mit der Beschriftung </>.

Der Teil

Code: Alles auswählen

val actions = getActions("lcn","lcn:module:b827ebfea4bb:S000M010")
Definiert die Verbindung der Rules DSL mit dem Channel. b827ebfea4bb ist dabei vermutlich der Bridge Name und S000M010 der Name des Things (bzw. der des Moduls). Allerdings habe ich selbst kein LCN, das ist also eher eine Vermutung.

Code: Alles auswählen

actions.hitKey("C", 4, "HIT")
sendet dann den Befehl hitKey mit den entsprechenden Parametern an das Thing.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Burkhard
Beiträge: 3
Registriert: 28. Mai 2022 07:59

Re: LCN Dynamischer Text

Beitrag von Burkhard »

Hallo Udotoni

nochmal vielen Dank, werd mich mal der Scriptsprache widmen(ist wohl JSR223).

Code: Alles auswählen

rule "Send dynamic Text to GT10D every minute"
when
    Time cron "0 * * ? * *"
then
    val actions = getActions("lcn","lcn:module:18B90268F7:S000M032")
    actions.sendDynamicText(1, "Test 123 CO₂ öäü߀") // row 1
end
18B90268F7 ist augenscheinlich die MAC Adresse des Gerätes, auf dem die PCK (Bridge) läuf.
When adding a PCK gateway by discovery, the new Thing's UID is the MAC address of the device, running the PCK gateway
Bekomm es aber nicht zum laufen :?

Vielen Dank noch mal für die Hilfen

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

Re: LCN Dynamischer Text

Beitrag von udo1toni »

Burkhard hat geschrieben: 26. Jun 2022 15:05 werd mich mal der Scriptsprache widmen(ist wohl JSR223).
Nein.
Die Rules DSL ist die Rules DSL (DomainSpecificLanguage). Sie wurde ursprünglich in XTend entwickelt (das ist extra zum Entwickeln Von DSL gedacht).
XTend wiederum wurde in Java entwickelt, weshalb die DSL an vielen Stellen starke Ähnlichkeit mit Java hat und teilweise sogar einfach Java Bibliotheken verwenden kann.

JSR223 war in openHAB2 verfügbar. In openHAB3 steht als Alternative momentan nur ECMA zur Verfügung. Das ist ein bestimmtes Subset von Java Script. (Java Script ist etwas anderes als Java, auch wenn auch dort gewisse Ähnlichkeiten vorhanden sind).
ECMA ist vor allem deshalb verfügbar, weil Blockly ECMA Code erzeugt. Das Subset trägt auch dazu bei, dass openHAB3 nur mit Java11 richtig funktioniert - wobei Java17 wohl auch geht, aber zumindest offiziell noch nicht unterstützt wird. Das ganze Konstrukt aus den verschiedenen Frameworks, welche das Grundgerüst für openHAB bilden ist nicht ganz einfach zu verstehen (gerade für Leute, die eher wenig mit Programmieren zu tun haben, also z.B. ich...) und es ist auch fragil. Deshalb kann auch nicht einfach jede Bibliothek so mir nichts, dir nichts auf den aktuellen Stand gebracht werden, es gibt viele Abhängigkeiten, die abgeprüft werden müssen.

Versuche erst mal, die Bridge online zu bekommen. Anschließend binde ein, zwei Geräte ein, mit jeweils einem oder zwei Channels, nichts komplexes. Wenn die ersten Channel online und funktional sind, kannst Du Dich der Anbindung über Actions widmen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten