Homemmatic thing wird nicht regelmäßig aktualisiert
Moderator: seppy
-
- Beiträge: 140
- Registriert: 23. Aug 2024 09:34
Homemmatic thing wird nicht regelmäßig aktualisiert
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.
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 ?
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
-
- Beiträge: 258
- Registriert: 6. Jun 2019 11:25
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
Wahrscheinlich weis die CCU dann nicht an wohin sie die Änderung senden soll. Schon mal diese Methode ausprobiert:
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.
Code: Alles auswählen
items.getItem('As_Temp').sendCommand('REFRESH');
Viele Grüße,
Ralf
Debmatic und Openhab in Proxmox VM debian x86_64
Ralf
Debmatic und Openhab in Proxmox VM debian x86_64
-
- Beiträge: 140
- Registriert: 23. Aug 2024 09:34
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
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 ?
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
-
- Beiträge: 140
- Registriert: 23. Aug 2024 09:34
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
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
Die Ausführung des scriptes sehe ich auch im log viewer
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
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');
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
- peter-pan
- Beiträge: 2773
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
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.
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
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
P.S.: das Beispiel im englischen Forum benutzt auch keine Hochkommas
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 258
- Registriert: 6. Jun 2019 11:25
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
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
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
Ralf
Debmatic und Openhab in Proxmox VM debian x86_64
-
- Beiträge: 140
- Registriert: 23. Aug 2024 09:34
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
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
Beide Syntaxschreibweisen funktionieren
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);
openhab 4.3.5, debian bookworm (openhabian) in Proxmox VM auf Intel NUC
- udo1toni
- Beiträge: 15269
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Homemmatic thing wird nicht regelmäßig aktualisiert
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:
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