Seite 1 von 1
Status Systemvariable aktualisieren
Verfasst: 30. Aug 2024 10:36
von kopfnuss
Hallo,
ich versuche seit längerm einige SV´s von HM in OH4 einzubinden, teilweise klappt es aber teilweise erhalte ich nur NULL.
Ich habe folgende SV in HM angelegt mit aktuellem Status:
HM_SV_Test.jpg
In OH4 kommt aber nur das an:
Screenshot 2024-08-30 at 10-25-44 openHAB.png
Auch ein Refresh über ein script ändert daran nichts:
Screenshot 2024-08-30 at 10-27-51 openHAB.png
Hat irgendeiner eine Idee?
VG Rudi
Re: Status Systemvariable aktualisieren
Verfasst: 30. Aug 2024 10:58
von rbeudel
Hallo,
erst mal ist das Intervall von 1 Sekunde viel zu kurz. Wenn der Script funktionite, würde Deine CCU die Flügel strecken.
Versuch mal eine andere SV als eine Werteliste anzusprechen. Hier ist mein Beispiel für eine Temperatur in blockly. Ein Variablenrefresh erneuert alle Variablen.
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="E@@SscqSB5jy{`(3.Gxt"><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="f=BRcK-77?h#d-E?1p2s"><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="GATEWAYEXTRAS_As_Temp"
itemLabel="As Temp"></mutation><field
name="itemName">GATEWAYEXTRAS_As_Temp</field></block></value></block></xml>
type: application/javascript
script: |
items.getItem('GATEWAYEXTRAS_As_Temp').sendCommand('REFRESH');
type: script.ScriptAction
Re: Status Systemvariable aktualisieren
Verfasst: 30. Aug 2024 22:50
von peter-pan
Ich weiss nicht genau was du letztendlich machen willst, aber hast du zu deinem Item (Systemvariablen) auch eine Kanalverknüpfung(Thing) vorgenommen?
Bei mir sieht das so aus:
.Items
Code: Alles auswählen
Number GatewayExtras_1testzahl "Test mit Systemvariablen + Follow-Profile" <ccu3> (gCCU3) ["Point"] {channel="homematic:GATEWAY-EXTRAS-3014F711A0001F98A9AABCAF:3014F711A0001F98A9AABCAF:GWE00000000:1#test_Zahl" [profile="follow"], channel="mqtt:topic:danny:espv3_02:temp"}
Dabei wird dieser Systemvariablen automatisch über das Follow-Profil der Wert eines anderen Items (Channel-Verknüpfung) in meinem Falle die Zimmertemperatur weitergeleitet. Das passiert ganz ohne Script.
Du kannst das Ganze natürlich auch mit einer Regel machen, aber wie Ralf schon geschrieben hat, nicht im Sekunden-Takt, sondern mit einem realen Wert (z.B.:Temperatur)
Eine .rule-Datei könnte so aussehen:
Code: Alles auswählen
rule "Test Systemvariable"
when
Item Dummy_4 changed to ON // Testschalter
// Item Socket_Fritz_02_Temp changed
then
GatewayExtras_1testzahl.sendCommand((Socket_Fritz_02_Temp.state as Number).floatValue)
logInfo("homematic","Gateway Testzahl")
end
Das sieht dann so aus:
testzhl.jpg