Nu kan du styra din Tellstick via Node-RED ( node.js )!

Moderator: Telldus

krambriw
Posts: 654
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by krambriw » Thu Jan 18, 2018 11:08 am

att få ljusen i mitt tv rum att släckas så fort jag startar vlc i fullskärm med detta tro?
På något sätt måste det skapas ett event eller en status förändring när vlc går upp i fullscreen som kan avläsas...kanske att EventGhost med lämplig plugin kan detektera detta...och sedan skapa ett event och publicera detta till en MQTT broker och vips, så kan detta användas av Node-RED för att släcka dina lampor

Eventuellt kan HTTP interfacet i vlc vara användbart om det går att kontrollera video mode den vägen

Men som sagt, tror problemet är det förstnämnda, resten skulle vara busenkelt

emiloberg
Posts: 16
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by emiloberg » Thu Jan 18, 2018 11:08 am

krambriw wrote: En fundering: Det vore läckert om man kunde skriva noder också i python (har massor av det sen tidigare) som alternativ till att behöva skriva om allt i javascript. Dessutom skulle python vara bättre i ett avseende, multi-threading
Nu är ju Node-RED ett Node-verktyg och därmed Javascript, så du får nog leta vidare om du vill jobba just i Python. Sen vet jag inte riktigt vad du har att vinna på att köra de här typerna av applikationer multitrådat. Javascript är förvisso enkeltrådat och det finns bara en event loop i Node, men så länge du skriver asynkron kod så innebär det inte att du får blockerande processer. Du kan ju t.ex. utan problem serva tusentals och åter tusentals anslutningar på en node-webbserver - t.ex. som Netflix som kör sitt frontend på just Node.

Det sagt så kan du utan problem exekvera Python från Node-RED med hjälp av exec-noden (följer med out of the box). Sen så får du hitta på något bra sätt för att skicka tillbaka data till Node-RED, t.ex. via en MQTT-broker.

emiloberg
Posts: 16
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by emiloberg » Thu Jan 18, 2018 11:08 am

Messer wrote:Kan jag äntligen uppfylla min dröm att få ljusen i mitt tv rum att släckas så fort jag startar vlc i fullskärm med detta tro?
Klart det kommer gå! Jag är på krambriws spår här. Det handlar om att lista ut hur du ska få VLC att komma med en signal och säga att "nu spelar jag i fullscreen" - sen är det en baggis att skicka det till PI:n och börja köra disco med lamporna.

Om det här inte är du, så är det en person som är ute efter exakt samma sak: https://forum.videolan.org/viewtopic.php?t=98589

Nu vet jag inte vad du kör för operativsystem men här är en person som har gjort ett härligt bash-script för att kontrollera om VLC kör i fullscreenläge: https://github.com/iye/lightsOn/blob/master/lightsOn.sh

Återkoppla gärna och berätta hur det gick. Vore kul att lägga ut lite exempel på hur node-red-contrib-tellstick används (Vet att den används av ett finskt företag för att styra bevattning i växthus!).

Messer
Posts: 7
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by Messer » Thu Jan 18, 2018 11:08 am

emiloberg wrote:
Messer wrote:Kan jag äntligen uppfylla min dröm att få ljusen i mitt tv rum att släckas så fort jag startar vlc i fullskärm med detta tro?
Klart det kommer gå! Jag är på krambriws spår här. Det handlar om att lista ut hur du ska få VLC att komma med en signal och säga att "nu spelar jag i fullscreen" - sen är det en baggis att skicka det till PI:n och börja köra disco med lamporna.

Om det här inte är du, så är det en person som är ute efter exakt samma sak: https://forum.videolan.org/viewtopic.php?t=98589

Nu vet jag inte vad du kör för operativsystem men här är en person som har gjort ett härligt bash-script för att kontrollera om VLC kör i fullscreenläge: https://github.com/iye/lightsOn/blob/master/lightsOn.sh

Återkoppla gärna och berätta hur det gick. Vore kul att lägga ut lite exempel på hur node-red-contrib-tellstick används (Vet att den används av ett finskt företag för att styra bevattning i växthus!).
Ah, det borde fungera, men jag är rätt novis på det här : )
Men ska kolla runt lite så fort jag har några timmar över, kan självklart rapportera mina problem här senare! Men först blir det nog att lägga in det här Node-red o få igång det istället för nexahome.

ps, hittade det här https://www.cygwin.com/
Det gör tydligen så man kan köra bash scripts på windows, det är nämligen windows på datorn jag streamar filmer osv ifrån.

krambriw
Posts: 654
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by krambriw » Thu Jan 18, 2018 11:08 am

Hej emiloberg,

Nu har jag hållit på ett tag med Node-RED och det fungerar riktigt bra. Har bara en liten fundering. Som du vet är ju funktionen för dessa rf produkter lite osäker eftersom man inte har två-vägs kommunikation. I mina python program har jag därefter alltid lagt in så att senaste statusen (eller senast skickade kommandon) automatiskt repeteras med inställbart interval. Detta vore bra om det kunde införas i din node. Annars måste jag bygga en separat historia i javascript som loopar runt senaste kommando med visst interval.

mvh
Skärmklipp.PNG
Skärmklipp.PNG (120.04 KiB) Viewed 9102 times
Skärmklipp.PNG
Skärmklipp.PNG (51.28 KiB) Viewed 9102 times

Jaxån
Posts: 185
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by Jaxån » Thu Jan 18, 2018 11:08 am

NIce. Det här är något som jag måste prova.

Men om man nu kör på en RPi, med Rasbian (dvs Debian) så kan man ju installera via paketsystemet.

Code: Select all

sudo aptitude update; sudo aptitude upgrade; sudo aptitude install node.js npm
Mer Linux/Debian-väg att köra en service är via init.d eller unity, vilket det ju fanns installationsanvisningar för. Detta eftersom det är mycket lättare att ha någon annan hantera säkerhetsbuggar i node.js etc. än att man själv skall kontollera med jämna mellanrum om det kommit någon bugg- eller säkerhetsfix.

Sedan, om man ville prata med andra program, som exempelvis python-skript, så fungerar det väl om de exempelvis använder MQTT för att kommunicera med varandra Node-RED och Python-programmet. Det finns ju stöd för MQTT i python.

Men jag måste prova.
Använder inte MSN eller ICQ. Bara XMPP (Jabber): anders.jackson@astrakan.hig.se

krambriw
Posts: 654
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by krambriw » Thu Jan 18, 2018 11:08 am

Sedan, om man ville prata med andra program, som exempelvis python-skript, så fungerar det väl om de exempelvis använder MQTT för att kommunicera med varandra Node-RED och Python-programmet. Det finns ju stöd för MQTT i python.
Visst, det fungerar klockrent. Jag själv har integrerat ihop Node-RED med både EventGhost och SwitchKing på detta sätt utan problem (med SwitchKing efter det att det releasades en MQTT plugin). Min MQTT broker ligger och kör i samma RPi som Node-RED.

Jaxån
Posts: 185
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by Jaxån » Thu Jan 18, 2018 11:08 am

krambriw wrote:
Sedan, om man ville prata med andra program, som exempelvis python-skript, så fungerar det väl om de exempelvis använder MQTT för att kommunicera med varandra Node-RED och Python-programmet. Det finns ju stöd för MQTT i python.
Visst, det fungerar klockrent. Jag själv har integrerat ihop Node-RED med både EventGhost och SwitchKing på detta sätt utan problem (med SwitchKing efter det att det releasades en MQTT plugin). Min MQTT broker ligger och kör i samma RPi som Node-RED.
Fast hellst så vill man ha XMPP med IoP-stöd för att kunna dela alla sina givare/brytare med valfria delmängder av alla på internet. Så man skall vilja ha en XMPP <-> MQTT för maximal flexibilitet, för de saker som inte implementerar XMPP direkt. Ja, man vill ha XMPP för att det är krypterat och alla nödvändiga mekanismer för att ha Internetaccess är där.
Använder inte MSN eller ICQ. Bara XMPP (Jabber): anders.jackson@astrakan.hig.se

krambriw
Posts: 654
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by krambriw » Thu Jan 18, 2018 11:08 am

För IoT är det väl egentligen två dominerande protokoll som används idag vad jag känner till

- MQTT (ursprungligen lanserat av IBM)
- XMPP (jabber)

Det är möjligt att även köra MQTT krypterat via https om man så önskar. Jag själv kör MQTT okrypterat internt på mitt eget husnät och där duger det. Ska man däremot koppla ut det hela mot internet så bör man köra krypterat (alternativt ansluta sin klient via en egen vpn server vilket jag gör)

Om du nu absolut vill köra XMPP med Node-RED så finns det ju en node för detta också,,,http://flows.nodered.org/node/node-red-node-xmpp

krambriw
Posts: 654
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by krambriw » Thu Jan 18, 2018 11:08 am

Ett av problemen med dessa rf produkter (en-vägs kommunikation på 433 MHz, svaga sändare mm) är att man ibland inte vet om signalen togs emot av mottagaren. För att öka chanserna kan man försöka skicka en 'burst', dvs flera kommandon med viss fördröjning. Jag har gjort en liten modifiering för mina självlärande moduler som funkar fint för mig.


Bilder som illustration:
Skärmklipp.PNG
Skärmklipp.PNG (9.66 KiB) Viewed 8824 times
Kod i funktionsmodulen (sänder kommandot 3 gånger):

Code: Select all

for (i = 0; i < 3; i++) {
    node.send( {payload:'ok'} );
}
return null;

Inställning i delay-noden som gör att det blir 5s paus mellan kommandona till TellSticken
Skärmklipp1.PNG
Skärmklipp1.PNG (10.69 KiB) Viewed 8824 times

Komplett Flow:

Code: Select all

[{"id":"c80d1b15.37f2e8","type":"tellstick-out","name":"","device":"6","devicefriendlyname":"Carport","method":"dim","dimlevel":"220","x":1588,"y":140,"z":"7d033eda.82fcc","wires":[]},{"id":"2eb82660.d147da","type":"tellstick-out","name":"","device":"6","devicefriendlyname":"Carport","method":"turnoff","dimlevel":0,"x":1579,"y":200,"z":"7d033eda.82fcc","wires":[]},{"id":"e2f8f3a0.1d071","type":"function","name":"","func":"for (i = 0; i < 3; i++) {\n    node.send( {payload:'ok'} );\n}\nreturn null;\n","outputs":1,"noerr":0,"x":1210,"y":140,"z":"7d033eda.82fcc","wires":[["981c2362.67e3e"]]},{"id":"981c2362.67e3e","type":"delay","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"12","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1377,"y":140,"z":"7d033eda.82fcc","wires":[["c80d1b15.37f2e8"]]},{"id":"42792ca0.bd86d4","type":"function","name":"","func":"for (i = 0; i < 3; i++) {\n    node.send( {payload:'ok'} );\n}\nreturn null;\n","outputs":1,"noerr":0,"x":1210,"y":200,"z":"7d033eda.82fcc","wires":[["cfd76196.3028a"]]},{"id":"cfd76196.3028a","type":"delay","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"12","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1377,"y":200,"z":"7d033eda.82fcc","wires":[["2eb82660.d147da"]]}]

mountaindude
Posts: 25
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by mountaindude » Thu Jan 18, 2018 11:08 am

Eftersom folk i denna tråd verkar vara intresserade av Telldus-relaterad information, Node-RED och MQTT tar jag risken och länkar till ett inlägg jag just skrev:

http://www.telldus.com/forum/viewtopic. ... 94&start=0

I korthet finns där Node-RED kod för att läsa ut all information om alla dina devices (strömbrytare etc) och sensorer som Telldus Live känner till.
All denna information postas sen som MQTT meddelanden, som man kan plocka upp från godtycklig MQTT-klient (Node-RED eller annan).
Fungerar klockrent, har med framgång kört det i några månader nu.

Edit: Fixade igår också en funktion som listar alla devices och deras id:n. Ett event skapas på funktionsnodens utgång för varje device. Koppla utgången till en debug-nod, så dyker alla devices och deras id:n upp i debugfönstret. Användbart för att från Node-RED ta reda på vilka strömbrytare man faktiskt har installerade - i alla fall jag tenderar att glömma det när de väl är på plats...
Funktionen länkas i posten ovan, men beskrivs i mer detalj på https://www.ptarmiganlabs.com/2015/09/0 ... -node-red/
samt på GitHub: https://github.com/mountaindude/Node-RE ... QTT-bridge

/Göran

nmodin
Posts: 4
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by nmodin » Thu Jan 18, 2018 11:08 am

Hallon och trevlig Lördag !

Det landade precis ett par Nexa pluggar (en switch, en dimmer), en Raspberry och innanmätet av en Tellstick på skrivbordet !

Jag sitter på en MacData och fick igång TelldusCenter och "tellsticken" såpass att jag nu sitter och småler över att jag kan slå av routern via menyn upp...

.
.
.

Ja det skulle jag ju inte gjort..

Iaf !

Nu sitter jag å kikar på node för att kunna flänga på ett litet http-api å sen en liten app te telefonen och sprang på den
här tråden. Jag är lite nooby vad det gäller node (pjlink styr min projektor iaf) men som jag förstod det så skulle C-biblorna för TelldusCore även installeras
via installern, men får fel när jag kör

Code: Select all

npm install telldus
Jag får "ld: framework not found TelldusCore", så det låter som att det inte är där det ska. C och mac är inte riktigt min planhalva rent generellt ska väl tilläggas
så ha överseende. :)

Nån som kan peka en i rätt riktning ?

/Niklas

ps.

Jag kan köra tdtool ok så nånting fastande i filsystemet ..

krambriw
Posts: 654
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by krambriw » Thu Jan 18, 2018 11:08 am

Nu sitter jag å kikar på node för att kunna flänga på ett litet http-api å sen en liten app te telefonen och sprang på den
här tråden. Jag är lite nooby vad det gäller node (pjlink styr min projektor iaf) men som jag förstod det så skulle C-biblorna för TelldusCore även installeras
via installern, men får fel när jag kör
CODE: SELECT ALL
npm install telldus
Har du följt HELA instruktionen här:

https://www.npmjs.com/package/node-red- ... stallation

ace
Posts: 2
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by ace » Thu Jan 18, 2018 11:08 am

Tjo, håller nu på med en liten app (android/ios) till contrib-tellstick. Just nu internt på nätverket men med lite port forward så löser det sig sen.

Jag tänkte mata ut appen sen på gitlab ink apk, ipa om någon vill testa.

Idén är som följer.
Inlogg samt settings för ipnr och port mm.
Plocka upp alla devices som finns inlagda och som serveras till oss från dom endpoints som redan finns i node-red-contrib-tellstick
Möjlighet att göra full backup på bla flows-rpi.json
Läsa av status för alla enheter (intervall) från endpoints in contrib-tellstick.
lagra enheter/status mm lokalt i db.
Lägga till enheter/tabort. (Learn)
Lista alla olika typer av enheter som kan hanteras.
Och självklart toggles n switches.

Mer info kommer om någon är intresserad.

emiloberg
Posts: 16
Joined: Thu Jan 18, 2018 11:08 am

Re: Nu kan du styra din Tellstick via Node-RED ( node.js )!

Post by emiloberg » Thu Jan 18, 2018 11:08 am

@krambriw och alla ni andra:

Superledsen att jag inte hängt med på vad som händer i forumet!

Jag har precis skjutit ut en uppdatering till node-red-contrib-tellstick som gör att samma kommando skickas nu ut fler gånger.

I och med att det är radio utan "svarspaket" vi pratar om så finns det inget sätt att veta om ett kommando kommit fram eller inte. Den här uppdateringen minskar det problemet då samma kommando skickas fler gånger på varandra och hoppas på att åtminstone 1 av meddelandena kommer fram. Som default så skickas samma kommando 5 gånger med 0,5 sekunders mellanrum. Det här kan ni själva ändra i konfigurationsfilen om det skulle behövas. Se hela CHANGELOG:en här https://github.com/emiloberg/node-red-c ... tag/v2.0.0

Uppdatera node-red-contrib-tellstick genom att, i terminalen, köra:

Code: Select all

npm install -g node-red-contrib-tellstick

Post Reply