Systemvariable für Funktion auslesen
Moderator: Co-Administratoren
-
- Beiträge: 77
- Registriert: 21.10.2016, 12:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Systemvariable für Funktion auslesen
Hallo,
ich würde gerne eine Systemvariable aus der CCU3 auslesen um sie in einer Funktion
zu benutzen. Wie lautet die Syntax dazu.
Ich möchte keine Extra node zum auslesen sondern den Wert per Scriptbefehl erhalten.
ich würde gerne eine Systemvariable aus der CCU3 auslesen um sie in einer Funktion
zu benutzen. Wie lautet die Syntax dazu.
Ich möchte keine Extra node zum auslesen sondern den Wert per Scriptbefehl erhalten.
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: Systemvariable für Funktion auslesen
Dazu muss im ccu-connection Node das Speichern aller Zustände im Context aktiviert werden:
Dann kannst Du in einem Function Node mit
auf z.B. den Inhalte der CCU-Variable "Anwesenheit" zugreifen.
Wie die Werte der CCU im Context organisiert sind kannst Du Dir in der Sidebar rechts mit dem Context-Browser anschauen.
Alternativ könntest Du aber auch ein CCU Sysvar Node nehmen und mit einem Change Node dahinter das selbst in den Context schreiben.
Dann kannst Du in einem Function Node mit
Code: Alles auswählen
global.get('ccu-localhost.sysvar.Anwesenheit.value')
Wie die Werte der CCU im Context organisiert sind kannst Du Dir in der Sidebar rechts mit dem Context-Browser anschauen.
Alternativ könntest Du aber auch ein CCU Sysvar Node nehmen und mit einem Change Node dahinter das selbst in den Context schreiben.
-
- Beiträge: 56
- Registriert: 07.02.2018, 13:03
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: 06686 Lützen
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 3 Mal
Re: Systemvariable für Funktion auslesen
Hallo,
ich habe ein ähnliches Problem, bei dem ich zwar keine Variable, aber einen Datenpunkt eine Gerätes in der function-node direkt auslesen möchte.
Die gezeigte Variante mit der Variable 'Anwesenheit' funktioniert bei mir zwar, wenn ich aber einen Datenpunkt, wie bspw. bei einem Rollladenaktor, in der gleichen Weise verwende, erhalte ich keinen Wert zurück.
ich habe ein ähnliches Problem, bei dem ich zwar keine Variable, aber einen Datenpunkt eine Gerätes in der function-node direkt auslesen möchte.
Die gezeigte Variante mit der Variable 'Anwesenheit' funktioniert bei mir zwar, wenn ich aber einen Datenpunkt, wie bspw. bei einem Rollladenaktor, in der gleichen Weise verwende, erhalte ich keinen Wert zurück.
Code: Alles auswählen
context.set("l",global.get('ccu-localhost.values.BidCos-RF.PEQ2262334:1.LEVEL.value'));
VG
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
-
- Beiträge: 210
- Registriert: 22.09.2012, 20:56
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 11 Mal
Re: Systemvariable für Funktion auslesen
Man kann auch eine globale NodeRED variable definiere und diese bei Änderung der CCU Variable aktualisieren.
Aus einer Function/Template/etc kann dann einfach auf die NodeRED variable zugegriffen werden.
Ich halte mittlerweile (fast) alle Daten in NodeRED Variablen.
Aus einer Function/Template/etc kann dann einfach auf die NodeRED variable zugegriffen werden.
Ich halte mittlerweile (fast) alle Daten in NodeRED Variablen.
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: Systemvariable für Funktion auslesen
Ich vermute das liegt an den Punkten im Datenpunktnamen. Versuche mal so:hmpos365 hat geschrieben: ↑30.09.2019, 14:33Die gezeigte Variante mit der Variable 'Anwesenheit' funktioniert bei mir zwar, wenn ich aber einen Datenpunkt, wie bspw. bei einem Rollladenaktor, in der gleichen Weise verwende, erhalte ich keinen Wert zurück.Code: Alles auswählen
context.set("l",global.get('ccu-localhost.values.BidCos-RF.PEQ2262334:1.LEVEL.value'));
Code: Alles auswählen
global.get('ccu-localhost.values')['BidCos-RF.PEQ2262334:1.LEVEL'].value
-
- Beiträge: 56
- Registriert: 07.02.2018, 13:03
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: 06686 Lützen
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 3 Mal
Re: Systemvariable für Funktion auslesen
Vielen Dank für die Hilfe. So funktioniert es jetzt!
Ich hatte schon die Vermutung, dass es an den Punkten bzw. Doppelpunkt in der Objektbezeichnung von Kanal und Datenpunkt handeln würde und habe x Varianten versucht. Aber die Vorgeschlagene hatte ich so nicht auf dem Plan.
Ich hatte schon die Vermutung, dass es an den Punkten bzw. Doppelpunkt in der Objektbezeichnung von Kanal und Datenpunkt handeln würde und habe x Varianten versucht. Aber die Vorgeschlagene hatte ich so nicht auf dem Plan.
VG
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
-
- Beiträge: 56
- Registriert: 07.02.2018, 13:03
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: 06686 Lützen
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 3 Mal
Re: Systemvariable für Funktion auslesen
Ergänzende Frage:
Gibt es auch eine Möglichkeit, auf den Status von Geräten direkt und ohne Umweg über die in der ccu-connection-node gespeicherten Werte zuzugreifen?
Der Hintergrund ist die Zeitfrage, da die Aktualisierung in der ccu-connection-node vermutlich auch nur in Intervallen geschieht und das Problem dabei ist, ob der gerade abgefragte Wert noch der aktuelle ist.
Gibt es auch eine Möglichkeit, auf den Status von Geräten direkt und ohne Umweg über die in der ccu-connection-node gespeicherten Werte zuzugreifen?
Der Hintergrund ist die Zeitfrage, da die Aktualisierung in der ccu-connection-node vermutlich auch nur in Intervallen geschieht und das Problem dabei ist, ob der gerade abgefragte Wert noch der aktuelle ist.
VG
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: Systemvariable für Funktion auslesen
Die Werte erhält der ccu-connection Node von den Schnittstellenprozessen per Push, d.h. sie sind immer aktuell. Ausnahme sind hier nur die Systemvariablen da die Rega keinen Push Mechanismus bietet, möglicher Workaround siehe https://github.com/rdmtc/RedMatic/wiki/ ... -poll-node
Ich selbst nutze den direkten Zugriff auf die Werte via Context übrigens gar nicht, arbeite immer mit dem "RPC Event" oder dem "Value" Node oder wenn ich abseits von Events auf die Werte zugreifen will mit dem "Get Value" Node (der eigentlich nichts anderes ist als ein komfortableres Frontend für den Zugriff auf den Context).
Ich selbst nutze den direkten Zugriff auf die Werte via Context übrigens gar nicht, arbeite immer mit dem "RPC Event" oder dem "Value" Node oder wenn ich abseits von Events auf die Werte zugreifen will mit dem "Get Value" Node (der eigentlich nichts anderes ist als ein komfortableres Frontend für den Zugriff auf den Context).
-
- Beiträge: 56
- Registriert: 07.02.2018, 13:03
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: 06686 Lützen
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 3 Mal
Re: Systemvariable für Funktion auslesen
Das mit dem "Value" bzw. "Get Value" node verstehe ich schon. Womit ich im Augenblick nichts anfangen kann ist der "RPC Event".
Wie kann man darüber oder damit auf Datenpunkte der Geräüte zugreifen?
Wie kann man darüber oder damit auf Datenpunkte der Geräüte zugreifen?
VG
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Hubert
RaspberryMatic z.Zt in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
Weiterhin
RaspberryMatic als OVA unter VMware in Version 3.73.9.20231130 mit
RedMatic Version 7.2.1
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: Systemvariable für Funktion auslesen
Der RPC Event Node greift nicht gezielt auf Datenpunkte zu. Er gibt die von den Schnittstellenprozessen eingehenden Datenpunkt-Events aus. Diese können über die Filter auf ein oder mehrere Datenpunkte eingeschränkt werden, eingehende Events werden dann nur ausgegeben wenn alle gesetzten Filter passen. So kannst Du z.B. sagen Du willst nur Events von Kanälen im Gewerk Heizung die den Datenpunkt ACTUAL_TEMPERATURE betreffen.