Schreiben auf ein Gerät aus einer Funktion heraus

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
Benutzeravatar
didiator
Beiträge: 97
Registriert: 21.12.2017, 13:25
System: CCU
Wohnort: Lübesse

Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von didiator » 04.09.2020, 16:20

Liebe Freunde,

ich möchte gern auf ein Gerät aus einer Node-Red function heraus schreiben. im Thread viewtopic.php?t=50838 habe ich gelesen, dass man das wohl mit context.set(<Wert>, <Gerät>) machen soll. Ist das soweit richtig? Ich hatte eigentlich eher vermutet, dass man das mit dem gegenstück von global.get -> global.set(...) machen muss...

Ich kann mir den Wert des Gerätes auslesen:

Code: Alles auswählen

let test = global.get('ccu-192_168.2.254.values')['BidCos-Wired.OEQ1530186:7.STATE'].value;
Er ergibt "false".

Dann versuche ich ihn zu setzen:

Code: Alles auswählen

context.set("1",global.get('ccu-192_168.2.254.values')['BidCos-Wired.OEQ1530186:7.STATE'].value);
und lese ihn erneut:

Code: Alles auswählen

let test2 = global.get('ccu-192_168.2.254.values')['BidCos-Wired.OEQ1530186:7.STATE'].value;
Leider ist er immer noch "false". Das Setzen hat nicht funktioniert.

Wo ist da mein Denkfehler? Oder anders gefragt, wie schreibt man den Wert eines Gerätes innerhalb einer Node-Red function?
---------------------------------------------------------------
stay original...

Debmatic auf der Basis von Paspberry Pi4, SSD
ca. 90 HM, HmIP und Wired Geräte
HB-RF-ETH
Alexa Anbindung
Node-Red

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von tloeffel » 04.09.2020, 22:30

Hallo didiator,

ich würde ja den Node CCU nehmen.

Beispiele findet Du hier: https://github.com/rdmtc/RedMatic/wiki/ ... ggle-light.

Gruß Thomas

Zusatz:
In der Kontext CCU was zu ändern geht so....

Code: Alles auswählen

//Test Kontext
var test;

//global.set('ccu-localhost.sysvar.ATest', 0);
test = global.get('ccu-localhost.sysvar.ATest');

// payload erzeugen
var newMsg = { payload: test,
topic: "Werte aus CCU lesen"};
return newMsg;
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

Benutzeravatar
didiator
Beiträge: 97
Registriert: 21.12.2017, 13:25
System: CCU
Wohnort: Lübesse

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von didiator » 05.09.2020, 10:12

Hallo Thomas,

Danke erstmal für Deine Antwort.
Das Beispiel mit einer Systemvariablen hatte ich bereits gesehen. Das funktioniert auch bei mir. Ich möchte aber einen Kanalwert ändern. Eigentlich müsste das auch analog funktionieren, aber ich mache da irgendwie einen Fehler. Könntest Du mir vielleicht ein bei Dir funktionierendes Beispiel schicken um z.B. eine Lampe ein / auszuschalten? Es ist bestimmt nur eine Kleinigkeit, warum das bei mir nicht klappt.

Den mitgeschickten Link habe ich mir angesehen. Allerdings will ich das Gerät ja aus einer Funktion heraus bedienen, nicht aus extra Nodes. Habe ich da was übersehen, oder wird in dem Link nur die Funktion über dedizierte Nodes beschrieben?
---------------------------------------------------------------
stay original...

Debmatic auf der Basis von Paspberry Pi4, SSD
ca. 90 HM, HmIP und Wired Geräte
HB-RF-ETH
Alexa Anbindung
Node-Red

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von tloeffel » 07.09.2020, 21:46

Hallo Dietmar,

anbei ein Beispiel.

Code: Alles auswählen

//Test Kontext
var ausgelesen;

let ccuData = global.get("ccu-localhost");

if (!ccuData.values)  { return null; } //wenn noch nicht initialisiert nix machen
ausgelesen = ccuData.values ['HmIP-RF.0008D709ABFEB7:4.LEVEL'].value;

// payload erzeugen
var newMsg = { payload: ausgelesen,
topic: "Werte aus CCU lesen"};
return newMsg;
Bitte sei vorsichtig, Redmatic und Kontext ist beim probieren abgestürzt. Dann einfach Redmatic neu starten. Wie man eine Wert schreibt habe ich noch nicht abgeleitet, bin aber auch kein Scripter.

Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

Benutzeravatar
didiator
Beiträge: 97
Registriert: 21.12.2017, 13:25
System: CCU
Wohnort: Lübesse

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von didiator » 08.09.2020, 09:59

Hallo Thomas,

Danke für Deine Recherchen. Ich möchte allerdings schreiben und nicht lesen. Das lesen hatte ich hinbekommen, das Schreiben nicht. Hast Du oder gern auch jemand anderes dafür ein funktionierendes Beispiel?

Vielen Dank!
---------------------------------------------------------------
stay original...

Debmatic auf der Basis von Paspberry Pi4, SSD
ca. 90 HM, HmIP und Wired Geräte
HB-RF-ETH
Alexa Anbindung
Node-Red

tloeffel
Beiträge: 448
Registriert: 13.09.2017, 05:11
Hat sich bedankt: 1 Mal
Danksagung erhalten: 12 Mal

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von tloeffel » 08.09.2020, 19:42

Hallo Dietmar,

ich bin kein Scripter und habe kein Beispiel. Dieser Weg ist aus meiner Sicht auch zu unsicher. Vielleicht kann ein Scripter unserer Gemeinschaft ein Beispiel liefern. Am Wochenende kann ich gerne auch noch einmal schauen.

Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte

Benutzeravatar
didiator
Beiträge: 97
Registriert: 21.12.2017, 13:25
System: CCU
Wohnort: Lübesse

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von didiator » 09.09.2020, 08:45

Hallo Thomas,

Dankeschön für Deinen Einsatz! Ich finde es toll, dass Du versucht hast mir zu helfen. Und es macht auch nichts, wenn es nicht zur Lösung geführt hat. Vielleicht kann mir ja jemand helfen, der unsere Anstrengungen in dieser Sache sieht und eine Lösung kennt. Vielen Dank auf jeden Fall...
---------------------------------------------------------------
stay original...

Debmatic auf der Basis von Paspberry Pi4, SSD
ca. 90 HM, HmIP und Wired Geräte
HB-RF-ETH
Alexa Anbindung
Node-Red

ptweety
Beiträge: 522
Registriert: 07.01.2017, 16:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 48 Mal
Danksagung erhalten: 66 Mal

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von ptweety » 09.09.2020, 22:25

didiator hat geschrieben:
04.09.2020, 16:20
Leider ist er immer noch "false". Das Setzen hat nicht funktioniert.
Hi Dietmar, ist der Datenpunkt überhaupt beschreibbar?

Benutzeravatar
didiator
Beiträge: 97
Registriert: 21.12.2017, 13:25
System: CCU
Wohnort: Lübesse

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von didiator » 16.09.2020, 10:52

ja, das ist ein Relay und sollte an und ausgeschaltet werden können.
Lampen sollte man auch an und ausschalten können. Und per grafischer Oberfläche geht's ja...
---------------------------------------------------------------
stay original...

Debmatic auf der Basis von Paspberry Pi4, SSD
ca. 90 HM, HmIP und Wired Geräte
HB-RF-ETH
Alexa Anbindung
Node-Red

vigeland
Beiträge: 147
Registriert: 29.11.2009, 16:55

Re: Schreiben auf ein Gerät aus einer Funktion heraus

Beitrag von vigeland » 17.09.2020, 14:24

Hi,

z.B. in einem function

let msg1={};
msg1.interface='HmIP-RF';
msg1.datapoint='WINDOW_STATE';
msg1.channel="ABCDEF:1";
msg1.payload=true;

return msg1;

In dem Falle ein HmIP-eTRV-2 mitteilen das Fenster offen sind.

und dann an einen leeren ccu-value node geben.

Gruß

Antworten

Zurück zu „RedMatic“