Homemmatic thing wird nicht regelmäßig aktualisiert

Moderator: seppy

Antworten
rebell21
Beiträge: 140
Registriert: 23. Aug 2024 09:34
Answers: 0

Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von rebell21 »

ich habe ein thing GATEWAY_EXTRAS zum Auslesen von Werten aus der RaspberryMatic manuell angelegt. Das neue Thing GATEWAY_EXTRAS ist verknüpft mit meiner Homematic Bridge. Diese Bridge scheint zu funktionieren, dann 10 andere Homematic devices werden korrekt aus der RaspberryMatic Installation über diese Bridge regelmäßig aktualisiert. Dieses thing soll vier neue Systemvariablen aus RaspberryMatic auslesen und in openhab anzeigen. Das funktioniert auch soweit. Aber das thing wird nicht aktualisiert bei Änderungen der Systemvariablen in RaspberryMatic. Es wird beim start von Openhab einmal ausgelesen und immer dann, wenn ich die Bridge neu starte. Dann werden die Werte korrekt ausgelesen in openhab angezeigt und stimmen mit den Werten in RaspberryMatic überein.
Screenshot_20250717_085340.jpg
Ich habe bereits eine per cron getriggerte Rule mit "Reload_all from Gateway ON" erstellt. Aber das hat nicht geholfen. Im log viewer sehe ich, dass dieses GATEWAY_EXTRAS nie auftaucht.
Es gibt noch ein zweites GATEWAY_EXTRAS thing , das vom Discovery früher mal erzeugt wurde. Ich nutze das nur, um das normale homematic interface zu triggern (send cemand on to RELOAD ALL from Gateway). Darf man keine zwei things GATEWAY_EXTRAS mit unterschiedlichen UIDs aber gleicher Bridge haben ?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab 4.3.5, debian bookworm (openhabian) in Proxmox VM auf Intel NUC

rbeudel
Beiträge: 258
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von rbeudel »

Wahrscheinlich weis die CCU dann nicht an wohin sie die Änderung senden soll. Schon mal diese Methode ausprobiert:

Code: Alles auswählen

items.getItem('As_Temp').sendCommand('REFRESH');
As_Temp natürlich gegen eine gültige Variable ersetzen. Auf die Dauer würde ich aber mal darüber nachdenken, homematic komplett zu deinstallieren, cache leeren neu booten um eine saubere Installation zu bekommen.
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

rebell21
Beiträge: 140
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von rebell21 »

Danke,

wo soll ich diese Methode denn einfügen ? Im thing oder item ? In der Rule, in der der ich RELOAD ALL FROM Gateway triggere ?
Soll ich ein Script schreiben, was diesen Befehl enthält und welches von der Rule aufgerufen wird ?
openhab 4.3.5, debian bookworm (openhabian) in Proxmox VM auf Intel NUC

rebell21
Beiträge: 140
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von rebell21 »

ich konnte ein script schreiben, welches aus einer rule per Trigger aufgerufen wird.

items.getItem('SonnenscheinHeute').sendCommand('REFRESH') hat bei mir nicht funktioniert. Ich habe sendCommand(item,command) nehmen müssen

Code: Alles auswählen


//sendCommand(Gateway_extras_Variablen_und_Scripte_1_RegenHeute,'REFRESH');
// sendCommand(Gateway_extras_Variablen_und_Scripte_1_RegenGestern,'REFRESH');
// sendCommand(Gateway_extras_Variablen_und_Scripte_1_SonnenscheinGestern,'REFRESH');
sendCommand(Gateway_extras_Variablen_und_Scripte_1_SonnenscheinHeute,'REFRESH');


Die Ausführung des scriptes sehe ich auch im log viewer
Screenshot_20250717_133955.jpg
Aber der Wert des Items ändert sich trotzdem nicht. Der Wert ändert sich nur , wenn ich die Bridge neu starte.

Und strange, ich erhalte Fehlermeldungen im log viewer, wenn ich alle vier sendCommands im skript habe. Hier sind die erst drei auskommentiert und es läuft durch, allerdings ohne Aktualisierung der items. Wenn ich die Auskommentierung der ersten drei Zeilen herausnehme, hagelt es Fehler im logviewer
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab 4.3.5, debian bookworm (openhabian) in Proxmox VM auf Intel NUC

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

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von peter-pan »

Hallo hier mal ein kleine DSL-Regel, die ich für meine Alarm-Sirene benutze in Verbindung mit dem "sendCommand".
Vielleicht dient dir das als Testvorlage.

Code: Alles auswählen

import org.openhab.core.model.script.ScriptServiceUtil

rule "Wasseralarmsirene"
  when
    Member of gWatAlTrig changed from OFF to ON

  then
   var  GenericItem itemTemp  = ScriptServiceUtil.getItemRegistry.getItem(triggeringItemName) as GenericItem    // Initialize Generic Item 
   var strLocation = getLocation(itemTemp).label                                                                // Location Label ermitteln
   var vTriggerString = triggeringItem.name + " - " + triggeringItem.label + " - " + strLocation
    sendCommand(ASIR2_Sirene_3OPTICALALARMSELECTION,"BLINKING_ALTERNATELY_REPEATING")
    sendCommand(ASIR2_Sirene_3ACOUSTICALARMSELECTION,"FREQUENCY_ALTERNATING_LOW_MID_HIGH")
    sendCommand(ASIR2_Sirene_3DURATIONUNIT,"S")
    sendCommand(ASIR2_Sirene_3DURATIONVALUE,15)
    logInfo("Alarm-Sirene","Achtung WasserSensor hat ausgelöst {}", vTriggerString)                            
   val mailActions = getActions("mail","mail:smtp:tonline-smtp")
       mailActions.sendMail("peter.pan@google.de", "Wasser-Alarm", "OH4 - es wird nass (Wasser-Alarm): " + vTriggerString)
end
Wie du siehst, benutze ich doppelte Hochkommas für den Befehlsparameter, ausser bei einem numerischen Wert.

P.S.: das Beispiel im englischen Forum benutzt auch keine Hochkommas
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

rbeudel
Beiträge: 258
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von rbeudel »

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      cronExpression: 0 0/5 * * * ? *
    type: timer.GenericCronTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      blockSource: <xml xmlns="https://developers.google.com/blockly/xml"><block
        type="oh_event" id="zd)yJbc*+n;5DJ:jPmc$" x="80" y="82"><field
        name="eventType">sendCommand</field><value name="value"><shadow
        type="text" id="+|(Dm~gl?E^nEps;4?R7"><field
        name="TEXT">value</field></shadow><block type="text"
        id="E@@SscqSB5jy{`(3.Gxt"><field
        name="TEXT">REFRESH</field></block></value><value
        name="itemName"><shadow type="oh_item"
        id="[sI^imrU2?##PSgrIg2;"><mutation itemName="MyItem"
        itemLabel="MyItem"></mutation><field
        name="itemName">MyItem</field></shadow><block type="oh_item"
        id="f=BRcK-77?h#d-E?1p2s"><mutation itemName="As_Temp" itemLabel="Büro
        Temperatur"></mutation><field
        name="itemName">As_Temp</field></block></value></block></xml>
      type: application/javascript
      script: |
        items.getItem('As_Temp').sendCommand('REFRESH');
    type: script.ScriptAction
Das ist der komplette mit blockly geschriebene code. Geht mit der UI.
Da fällt mir noch ein, es reicht eine Variabele, die anderen werden mit aktualisiert.
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

rebell21
Beiträge: 140
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von rebell21 »

die Lösung war:

Ich habe alle things Gateway_extras gelöscht. Ich hatte nämlich zwei. Damit kommt openhab nicht klar. Dann hat das Discovery ein neues Gateway_extras erkannt. Das hab ich erzeugt, die bridge verlinkt, die existierenden Items verlinkt und nun funktioniert die Aktualisierung jede Minute per skript aus einer Rule per cron jede Minute einmal getriggert

hier ist das Skript

Code: Alles auswählen

Gateway_extras_Variablen_und_Scripte_1_SonnenscheinHeute.sendCommand("REFRESH")
sendCommand(Gateway_extras_Variablen_und_Scripte_1_RegenHeute,REFRESH);

Beide Syntaxschreibweisen funktionieren
openhab 4.3.5, debian bookworm (openhabian) in Proxmox VM auf Intel NUC

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

Re: Homemmatic thing wird nicht regelmäßig aktualisiert

Beitrag von udo1toni »

Eigentlich sollte man möglichst immer die Methode verwenden (Zeile 1), die Action benötigt man allenfalls, wenn man den Namen des Items nur als String vorliegen hat (also z.B. weil man ihn "errechnet").
Das Semikolon wird in der DSL (die "alte" Art Rules zu programmieren) nur bei einem einzigen Befehl gebraucht, und das ist der Befehl return;
Da REFRESH ein Command ist, sollte es auch ohne Anführungszeichen funktionieren:

Code: Alles auswählen

Gateway_extras_Variablen_und_Scripte_1_SonnenscheinHeute.sendCommand(REFRESH)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten