[nodeRED] data omvormen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Brecht.A
  • Registratie: November 2011
  • Laatst online: 30-09 09:16
Mijn vraag
Dag iedereen,

Ik ben een complete nieuwkomer in het node-RED gebeuren, maar ik ben momenteel bezig om een flow te creëren waarbij ik via homekit een uitgang/lamp aangesloten op een Siemens S7 PLC wil aansturen.

Wat ik al gevonden of geprobeerd heb

Het ontvangen van de berichten vanuit homekit werkt goed, die zien er zo uit:
JavaScript:
1
2
msg.payload : Object
{ On: true }

Wanneer de uitgang/lamp moet ingeschakeld worden.

Om de lamp aan te sturen, moet ik het volgende berichtje versturen:
JavaScript:
1
 {"value":[false]}

Met deze flow kan ik de lamp aan of uitsturen: Afbeeldingslocatie: https://tweakers.net/ext/f/Ygq3e1wP8Pa4Qt54EWe7IdNJ/thumb.png

Ik moet dus een function maken om het signaal die komt van homekit te vertalen naar dat naar die naar de plc gestuurd moet worden.
Hiervoor had ik volgende code geschreven, maar deze werkt helaas niet :(
JavaScript:
1
2
3
4
5
6
7
8
var payload=msg.payload;

if (payload.on === true) {
     msg.payload.value =  [true]  ;
} else {
    msg.payload.value =  [false]  ;
}
return msg;


Het is waarschijnlijk iets héél eenvoudigs, maar ik vind het maar niet. Is er iemand die me op de weg kan zetten?


Opgelost! Ik heb het via een 'change' node kunnen oplossen, nu eens kijken hoe ik hetzelfde kan bereiken via een Function node!

[ Voor 5% gewijzigd door Brecht.A op 31-08-2019 16:26 . Reden: Opgelost! ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Dat script wat je neerzet slaat ziet er raar uit. Als het als iets doet waarom dan niet:
JavaScript:
1
2
3
msg.payload.value =  [msg.payload.on]  ;

return msg;

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 04-10 22:43

Rmg

Is het niet gewoon msg.payload = {"value":[false]};