Acties:
  • 0 Henk 'm!
Dat klinkt opzich wel als snel genoeg. Mijn verlichting bij thuiskomst/weggaan schakelt door de deur op-/van het slot te halen. Ik zie het alleen niet zitten om mijn controller daar mee te belasten denk ik

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 22:48
Ik was ook niet van plan om elke seconde de UniFi controller te raadplegen :+ Elke minuut (of misschien zelfs elke 5 min) is vaak zat. Zet ik de presence mooi in een global (dank @Tsurany ) en dan kan ik het ook in andere flows gebruiken.

Acties:
  • 0 Henk 'm!

  • roynolf
  • Registratie: December 2009
  • Laatst online: 05-12-2023
lolgast schreef op woensdag 13 mei 2020 @ 10:19:
Ik gebruik de Home Assistant app. Dat werkt hier echt super goed (beide met iPhones). Zeker sinds die app een 'interne URL' setting heeft en hij dus weet dat wanneer je met een bepaalde SSID verbonden bent, je thuis bent.
Ik slaag er maar niet in om de interne verbindings URL werkende te krijgen op het WIFI SSID.

Bij wifi SSID vul ik de naam van het thuisnetwerk in.
Nadien vul ik bij interne verbindings URL: https://{local.ip}:8123 in.

Kan jij me soms aanwijzen wat ik verkeerd doe?

Acties:
  • 0 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
roynolf schreef op donderdag 14 mei 2020 @ 09:07:
[...]

Ik slaag er maar niet in om de interne verbindings URL werkende te krijgen op het WIFI SSID.

Bij wifi SSID vul ik de naam van het thuisnetwerk in.
Nadien vul ik bij interne verbindings URL: https://{local.ip}:8123 in.

Kan jij me soms aanwijzen wat ik verkeerd doe?
Misschien beter om die vraag te stellen in het HA topic:
Home Assistant: Open source Python3 home automation - deel 2

Acties:
  • 0 Henk 'm!
Ik heb hem gequote in het HA topic :)

Acties:
  • 0 Henk 'm!

Verwijderd

heeft er iemand nbrowser werkend in node-red?

Acties:
  • 0 Henk 'm!

  • Andre_J
  • Registratie: September 2005
  • Laatst online: 21:50
Verwijderd schreef op zaterdag 16 mei 2020 @ 11:29:
heeft er iemand nbrowser werkend in node-red?
Ik heb deze in gebruik.
https://hub.docker.com/r/mukowman/nodered-nbrowser-docker

Acties:
  • 0 Henk 'm!

  • Nieuwsgier
  • Registratie: Juli 2012
  • Laatst online: 27-07 11:09
Ik heb niet alles gelezen in dit topic, dus als het al eerder is gevraagd..mijn excuses.
Ik heb een paar simpele zaken gedaan in Node-Red maar veel verder kom ik dan niet.

Als ik dan ga zoeken in fora dan loop ik tegen het volgende aan :
Je komt de meest prachtige flows tegen, maar iedere stap die in de flow wordt getoond heeft een icoontje, die waarschijnlijk weergeeft wat de functie is, en een beschrijving door de ontwerper zelf. Maar hoe kom je er nu achter welke functie is gebruikt. Ik weet namelijk niet wat ieder icoontje betekent.

Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 19:00

Gizz

Dunder-Mifflin, Inc.

@Nieuwsgier Meestal kun je letterlijk de flow importeren, dat is de brij met informatie die we hier in de code-blokken plakken. Dan heb je gewoon de flow met alle nodes in je eigen NR-omgeving en kun je alles aanklikken en zien wat het is en hoe het ingesteld staat.

Alleen naar een screenshot kijken geeft wel een globaal beeld, maar veel nodes hebben aanvullende code of instellingen in zich die je niet op de screenshot ziet. Dus zelfs als je wel het icoontje van een node herkent heb je er nog steeds niet heel veel aan. Vandaar dat we de flows delen :)

Dit geldt overigens niet alleen voor fora. Als je in de flow-bibliotheek op nodered.org kijkt zie je onder de screenshot ook de importeercode van de flow. Kijk maar eens bij een willekeurige flow.

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • Nieuwsgier
  • Registratie: Juli 2012
  • Laatst online: 27-07 11:09
Het gaat mij er vooral om dat je een flow kunt "lezen" , en dat je dus kunt achterhalen welke functies zijn gebruikt. Als je importeerd weet je nog niet welke functies zijn gebruikt toch ?

Acties:
  • 0 Henk 'm!

  • Raider095
  • Registratie: November 2014
  • Laatst online: 02-11-2021
Nieuwsgier schreef op zaterdag 16 mei 2020 @ 19:02:
Het gaat mij er vooral om dat je een flow kunt "lezen" , en dat je dus kunt achterhalen welke functies zijn gebruikt. Als je importeerd weet je nog niet welke functies zijn gebruikt toch ?
Je kunt de functie(node)s toch openklikken?

Acties:
  • 0 Henk 'm!

  • Nieuwsgier
  • Registratie: Juli 2012
  • Laatst online: 27-07 11:09
Raider095 schreef op zaterdag 16 mei 2020 @ 19:20:
[...]


Je kunt de functie(node)s toch openklikken?
Zie nu pas dat de tekst bovenaan dan overeenkomt met de funtie :o :o :o

Dank je

Acties:
  • +1 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
Nieuwsgier schreef op zaterdag 16 mei 2020 @ 19:38:
[...]


Zie nu pas dat de tekst bovenaan dan overeenkomt met de funtie :o :o :o

Dank je
Ik zou je aanraden heel deze playlist te bekijken, het omvat alle standaard nodes en het gebruik in de praktijk. Ik ben zelf vrij actief op het node-red forum en merk regelmatig dat mensen niet op de hoogte zijn van "standaard" beschikbare functies en dan het wiel opnieuw uitvinden. 99 van de 100x kan een flow veel makkelijker en korter dan je denkt.

Als je echt in node-red zit, dan zou ik ook zeker aanraden om jezelf te verdiepen in JSONata, enorm krachtig in het manipuleren van objecten en arrays (ala xpath/xlst maar dan voor json), wat op zijn beurt een flow weer korter kan maken met een enkele change node.

Acties:
  • +1 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

yeah :) (ff crosspst van domoticz topic)

https://github.com/mr4hughz/Toon-Rooted-Node-Red-Zwave


Afbeeldingslocatie: https://github.com/mr4hughz/Toon-Rooted-Node-Red-Zwave/blob/master/example.JPG?raw=true

[ Voor 16% gewijzigd door vso op 20-05-2020 14:35 ]

Tja vanalles


Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
ik probeer al sinds een lange tijd mijn rolluiken met bepaalde condities uit home assistant te automatiseren.
Ik wil dat met regen, als de temperatuur hoger is als 24 graden en als het harder waait als 40 km/h de rolluiken te sluiten en als het hier niet meer aan voldoet om ze weer te openen.
Regen haal ik met de buienalarm plugin (sensor.buienalarm_precipitation) op en temperatuur(sensor.br_temperature) en wind (sensor.br_wind_speed) met buienradar.

Nu heb ik 3 flows gemaakt maar dit werkt natuurlijk niet goed, gisteren was het b.v warmer als 24 graden en dan sluiten de rolluiken, maar aangezien het niet regende gingen ze weer open, en dit gebeurde wel 20x.

nu denk ik dat ik dit met een function moet oplossen met if then else statement, alleen heb ik voor voorbeelden gezocht om me op weg te helpen maar deze kan ik niet vinden. Iemand hier die hier iets meer van weet?

Edit: toch nog wat gevonden heb nu de volgende function:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;

if ((rain < 0.1) || (temp <= 24) || (wind <= 40)) {
    msg.payload = close;
}
else {
    msg.payload = open;
}
return msg;


hier zou als msg open of close uit moeten komen dus ik heb na deze functie een switch gehangen met open en close en deze dan aan de rolluiken open / close flow gehangen. Helaas werkt dit ook niet ;(

Edit 2:
heb de function werkend gekregen door eest de state node van home assistant in node red te zetten van regen, wind en temperatuur en deze dan verbinden met de volgende function code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;

if ((rain > 0.1) || (temp >= 24) || (wind >= 40)) {
    msg.payload = "close";
}
else if ((rain < 0.1) || (temp <= 24) || (wind <= 40)) {
    msg.payload = "open";
}
return msg;


Hierna een switch met open en close naar de open/close flows die ik al had.

Alleen klopt volgens mij de if statement dan nog niet, heb volgens mij nog steeds hetzelfde probleem als in mijn originele post als het warmer is dan 24 graden zal ie sluiten en het regent niet zal ie weer openen terwijl het wel te warm is. programmeren is voor mij al bijna 20 jaar geleden dus ben het wat verleerd.
Iemand hier nog tips in of is het zo wel goed?

[ Voor 51% gewijzigd door TheMystery op 23-05-2020 13:24 ]


Acties:
  • 0 Henk 'm!

  • Mich
  • Registratie: December 2000
  • Laatst online: 22:19
TheMystery schreef op zaterdag 23 mei 2020 @ 10:29:
ik probeer al sinds een lange tijd mijn rolluiken met bepaalde condities uit home assistant te automatiseren.
Ik wil dat met regen, als de temperatuur hoger is als 24 graden en als het harder waait als 40 km/h de rolluiken te sluiten en als het hier niet meer aan voldoet om ze weer te openen.
Regen haal ik met de buienalarm plugin (sensor.buienalarm_precipitation) op en temperatuur(sensor.br_temperature) en wind (sensor.br_wind_speed) met buienradar.

Nu heb ik 3 flows gemaakt maar dit werkt natuurlijk niet goed, gisteren was het b.v warmer als 24 graden en dan sluiten de rolluiken, maar aangezien het niet regende gingen ze weer open, en dit gebeurde wel 20x.

nu denk ik dat ik dit met een function moet oplossen met if then else statement, alleen heb ik voor voorbeelden gezocht om me op weg te helpen maar deze kan ik niet vinden. Iemand hier die hier iets meer van weet?

Edit: toch nog wat gevonden heb nu de volgende function:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;

if ((rain < 0.1) || (temp <= 24) || (wind <= 40)) {
    msg.payload = close;
}
else {
    msg.payload = open;
}
return msg;


hier zou als msg open of close uit moeten komen dus ik heb na deze functie een switch gehangen met open en close en deze dan aan de rolluiken open / close flow gehangen. Helaas werkt dit ook niet ;(

Edit 2:
heb de function werkend gekregen door eest de state node van home assistant in node red te zetten van regen, wind en temperatuur en deze dan verbinden met de volgende function code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;

if ((rain > 0.1) || (temp >= 24) || (wind >= 40)) {
    msg.payload = "close";
}
else if ((rain < 0.1) || (temp <= 24) || (wind <= 40)) {
    msg.payload = "open";
}
return msg;


Hierna een switch met open en close naar de open/close flows die ik al had.

Alleen klopt volgens mij de if statement dan nog niet, heb volgens mij nog steeds hetzelfde probleem als in mijn originele post als het warmer is dan 24 graden zal ie sluiten en het regent niet zal ie weer openen terwijl het wel te warm is. programmeren is voor mij al bijna 20 jaar geleden dus ben het wat verleerd.
Iemand hier nog tips in of is het zo wel goed?
Ik ben naar precies hetzelfde opzoek. Ik wil mijn home assistant automations overzetten naar node-red, maar ik loop ook vast op eigenlijk simpele zaken als een soort van "and" functie.

Eigenlijk wil ik 3 of 4 variabelen inlezen en als die aan voorwaarden voldoen de lampen aan doen.

Waar ik op uit kwam was om de variabelen in te lezen in node-red en er flow-variabelen van te maken en die in een function node te vergelijken en de output terug te sturen naar home assistant.

Ik kwam ook een "merge" node tegen. Deze combineert meerde signalen in arrays maar helaas alleen als de signalen tegelijk getriggered worden. Dus als 1 signaal verandert neemt hij de andere niet meer mee in de output

[ Voor 3% gewijzigd door Mich op 23-05-2020 13:51 ]


Acties:
  • 0 Henk 'm!

  • Tsurany
  • Registratie: Juni 2006
  • Niet online

Tsurany

⭐⭐⭐⭐⭐

TheMystery schreef op zaterdag 23 mei 2020 @ 10:29:
Alleen klopt volgens mij de if statement dan nog niet, heb volgens mij nog steeds hetzelfde probleem als in mijn originele post als het warmer is dan 24 graden zal ie sluiten en het regent niet zal ie weer openen terwijl het wel te warm is. programmeren is voor mij al bijna 20 jaar geleden dus ben het wat verleerd.
Iemand hier nog tips in of is het zo wel goed?
Weet je zeker dat de waarden juist uit HA gehaald worden? Al getest met een debug node?
Wat ik zou doen is een function node gebruiken om de waarden op te halen en in een payload te zetten. Dan in een tweede node deze waarden om zetten naar een open/close situatie en als payload uitsturen. Dan kan je heel makkelijk een debugger achter je beide nodes hangen om je functie te debuggen.

Daarnaast zit je code wat vreemd in elkaar. Je hebt een if statement die checkt of een van de drie waarden boven een grenswaarde ligt met een else if om te checken of een van die drie waarden onder een grenswaarde ligt. Die "else if" wordt enkel geraakt als alle drie de waarden onder de grenswaarde liggen, waarom zou je dan nog een extra controle uitvoeren? Gewoon vervangen door een "else" statement zonder if conditie.
Mich schreef op zaterdag 23 mei 2020 @ 13:49:
Ik ben naar precies hetzelfde opzoek. Ik wil mijn home assistant automations overzetten naar node-red, maar ik loop ook vast op eigenlijk simpele zaken als een soort van "and" functie.

Eigenlijk wil ik 3 of 4 variabelen inlezen en als die aan voorwaarden voldoen de lampen aan doen.

Waar ik op uit kwam was om de variabelen in te lezen in node-red en er flow-variabelen van te maken en die in een function node te vergelijken en de output terug te sturen naar home assistant.

Ik kwam ook een "merge" node tegen. Deze combineert meerde signalen in arrays maar helaas alleen als de signalen tegelijk getriggered worden. Dus als 1 signaal verandert neemt hij de andere niet meer mee in de output
Je kan hier inderdaad variabelen van maken die los van elkaar gezet worden. Vervolgens heb je een timer die de drie variabelen uitleest en er logica op los laat via een simpele JavaScript.

code:
1
2
3
4
5
6
7
8
9
10
11
12
var1 = flow.get(["var1"]);
var2 = flow.get(["var2"]);
var3 = flow.get(["var3"]);

if (var1 = <<>> and var2 = <<>> and var3 = <<>>)
{
   true;
}
else
{
   false;
};

[ Voor 31% gewijzigd door Tsurany op 23-05-2020 14:53 ]

SMA SB5.0 + 16x Jinko 310wp OWO + 10x Jinko 310wp WNW |--|--| Daikin 4MXM68N + 1x FTXA50AW + 3x FTXM20N


Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
Tsurany schreef op zaterdag 23 mei 2020 @ 14:48:
[...]

Weet je zeker dat de waarden juist uit HA gehaald worden? Al getest met een debug node?
Wat ik zou doen is een function node gebruiken om de waarden op te halen en in een payload te zetten. Dan in een tweede node deze waarden om zetten naar een open/close situatie en als payload uitsturen. Dan kan je heel makkelijk een debugger achter je beide nodes hangen om je functie te debuggen.

Daarnaast zit je code wat vreemd in elkaar. Je hebt een if statement die checkt of een van de drie waarden boven een grenswaarde ligt met een else if om te checken of een van die drie waarden onder een grenswaarde ligt. Die "else if" wordt enkel geraakt als alle drie de waarden onder de grenswaarde liggen, waarom zou je dan nog een extra controle uitvoeren? Gewoon vervangen door een "else" statement zonder if conditie.
Ja waardes komen er goed uit heb ik met debug getest, dus waardes krijg ik er wel uit, het lukt me alleen niet om het te programmeren zoals ik wil. Lukt me alleen om naar 1 waarde te kijken. Probleem is dat de rolluiken de hele tijd open en dicht gaan omdat 1 waarde hem sluit en andere weer opent.

Ik had eerst een else alleen met debuggen kwam er niets uit, en met een else If werkte het wel, wat ik ook raar vond.

Acties:
  • 0 Henk 'm!

  • Raider095
  • Registratie: November 2014
  • Laatst online: 02-11-2021
Het enige wat mij zo 1,2,3 opvalt, maar dat zou niet direct het probleem mogen zijn, is dat je zowel >= 24 als <= 24 gebruikt. Dat zou >=24 en <24 of >24 en <= 24 moeten zijn

Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
Raider095 schreef op zaterdag 23 mei 2020 @ 20:10:
Het enige wat mij zo 1,2,3 opvalt, maar dat zou niet direct het probleem mogen zijn, is dat je zowel >= 24 als <= 24 gebruikt. Dat zou >=24 en <24 of >24 en <= 24 moeten zijn
Klopt had de formule even snel omgedraaid om te testen, normaal zou alleen else al moeten werken namelijk.
Maar zie dat ik bij eerste voorbeeld kleiner dan ipv groter dan gebruikt heb, dus daar ging mijn test waarschijnlijk fout.

Edit:
Nog snel even getest en dat was het idd, dus werkende code is
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;

if ((rain > 0.1) || (temp >= 24) || (wind >= 40)) {
    msg.payload = "close";
}
else {
    msg.payload = "open";
}
return msg;


Heb het even getest met een debug, als ik de temperatuur op 25 zet dan gaat deze naar close, zet ik de wind op 45 is deze close, zet in de wind terug naar 20 dan blijft het close omdat de temperatuur nog te hoog is. Dus nu zouden mijn rolluiken niet zo vaak op en neer meer mogen gaan :)

[ Voor 42% gewijzigd door TheMystery op 23-05-2020 20:58 ]


Acties:
  • 0 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
@TheMystery ik probeer mee te denken, maar begrijp nog niet helemaal wanneer je het rolluik omlaag wil hebben. Want in je laatste code gaat hij omlaag bij hitte OF regen OF veel wind.

Maar ik zou denken dat je normaal gesproken een rolluik naar beneden wil hebben bij hitte, maar juist niet bij veel wind (i.v.m. beschadigen). En een zonnescherm of screen juist niet omlaag bij regen. Doet regen er voor een rolluik toe?

En wil je niet kijken naar de verwachte max. temperatuur voor vandaag i.p.v. de huidige temperatuur? Ik bedoel: als het op een dag 30+ graden gaat worden, wil je het rolluik misschien al omlaag hebben/houden vanaf zonsopgang (o.i.d) en niet pas vanaf het moment dat buiten eenmaal de 24 graden aangetikt is.

[ Voor 27% gewijzigd door DeadMetal op 24-05-2020 09:54 ]


Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
Ik zal me ook eens melden.

Heb een aantal hele simpele flows in elkaar kunnen zetten en ben nu bezig met een iets uitgebreidere flow.
Het idee is vrij simpel, zodra er een commando binnen komt in Telegram moet Node-Red daar op reageren en dat datums van de containers doorgeven.

Ondanks dat het ongetwijfeld efficiënter kan werkt dit voor mij prima, het enige wat ik graag zou willen (en waar ik dus niet uitkom) is het sorteren van de datums.

Dit is de flow zelf:
code:
1
[{"id":"39baa218.c4d536","type":"telegram command","z":"2fc90dbf.fe8da2","name":"","command":"/container@bot","bot":"","strict":false,"hasresponse":true,"x":80,"y":360,"wires":[["4097a26.8cb785c","401211a5.735ce8","3bd16e6b.af89e2"],[]]},{"id":"4097a26.8cb785c","type":"api-current-state","z":"2fc90dbf.fe8da2","name":"Haal datum GFT op","server":"","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":true,"entity_id":"sensor.afvalinfo_gft","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":450,"y":300,"wires":[["4b850ce4.621cc4"]]},{"id":"401211a5.735ce8","type":"api-current-state","z":"2fc90dbf.fe8da2","name":"Haal datum papier op","server":"","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.afvalinfo_papier","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":460,"y":360,"wires":[["aaefdb58.bd3c2"]]},{"id":"3bd16e6b.af89e2","type":"api-current-state","z":"2fc90dbf.fe8da2","name":"Haal datum plastic op","server":"","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.afvalinfo_pbd","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":460,"y":420,"wires":[["8f824bbf.52ac1"]]},{"id":"b00fac2f.99b368","type":"join","z":"2fc90dbf.fe8da2","name":"Voeg samen","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":890,"y":360,"wires":[["9861f5ba.a77ea8"]]},{"id":"4b850ce4.621cc4","type":"function","z":"2fc90dbf.fe8da2","name":"Geef label mee","func":"msg.topic = \"gft\"\nreturn msg;","outputs":1,"noerr":0,"x":680,"y":300,"wires":[["b00fac2f.99b368"]]},{"id":"aaefdb58.bd3c2","type":"function","z":"2fc90dbf.fe8da2","name":"Geef label mee","func":"msg.topic = \"papier\"\nreturn msg;","outputs":1,"noerr":0,"x":680,"y":360,"wires":[["b00fac2f.99b368"]]},{"id":"8f824bbf.52ac1","type":"function","z":"2fc90dbf.fe8da2","name":"Geef label mee","func":"msg.topic = \"pbd\"\nreturn msg;","outputs":1,"noerr":0,"x":680,"y":420,"wires":[["b00fac2f.99b368"]]},{"id":"9861f5ba.a77ea8","type":"function","z":"2fc90dbf.fe8da2","name":"Maak telegram","func":"msg.payload = {\n    chatId : 0,\n    type : 'message',\n    content : '*Container!*\\r\\nGFT: '+msg.payload.gft+'\\r\\nPapier: '+msg.payload.papier+'\\r\\nPlastic: '+msg.payload.pbd+''\n}\nmsg.payload.options = {parse_mode : \"Markdown\"};\nreturn msg;","outputs":1,"noerr":0,"x":1060,"y":360,"wires":[["3ed977b3.ace45"]]},{"id":"3ed977b3.ace45","type":"telegram sender","z":"2fc90dbf.fe8da2","name":"Verstuur Telegram","bot":"","x":1250,"y":360,"wires":[[]]},{"id":"750a356e.149d04","type":"telegram command","z":"2fc90dbf.fe8da2","name":"","command":"/container","bot":"","strict":false,"hasresponse":true,"x":60,"y":400,"wires":[["4097a26.8cb785c","401211a5.735ce8","3bd16e6b.af89e2"],[]]}]


Iemand een suggestie of idee hoe ik de data na de join kan sorteren?

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
Toppe schreef op zondag 24 mei 2020 @ 10:56:
Ik zal me ook eens melden.

Heb een aantal hele simpele flows in elkaar kunnen zetten en ben nu bezig met een iets uitgebreidere flow.
Het idee is vrij simpel, zodra er een commando binnen komt in Telegram moet Node-Red daar op reageren en dat datums van de containers doorgeven.

Ondanks dat het ongetwijfeld efficiënter kan werkt dit voor mij prima, het enige wat ik graag zou willen (en waar ik dus niet uitkom) is het sorteren van de datums.
Iemand een suggestie of idee hoe ik de data na de join kan sorteren?
Voor het toevoegen van een msg.topic kan je ook een change-node gebruiken, dat scheelt weer wat functienodes. NR heeft een sort-node, is die bruikbaar na de join-node? Dan blijft enkel nog de uitdaging over om na sorteren ze in te goede volgorde toe te voegen aan je bericht.

Ik gebruik trouwens de Afvalbeheer integratie van HA (via HACS). En daardoor allemaal in de GUI van HA in te zien. En in NR heb ik elke ochtend een check of een van de containers vandaag ("sensor.vandaag") geleegd wordt. Zo ja, dan ontvang ik een bericht via Telegram.

[ Voor 3% gewijzigd door DeadMetal op 24-05-2020 11:46 ]


Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
DeadMetal schreef op zondag 24 mei 2020 @ 11:43:
[...]


Voor het toevoegen van een msg.topic kan je ook een change-node gebruiken, dat scheelt weer wat functienodes. NR heeft een sort-node, is die bruikbaar na de join-node? Dan blijft enkel nog de uitdaging over om na sorteren ze in te goede volgorde toe te voegen aan je bericht.

Ik gebruik trouwens de Afvalbeheer integratie van HA (via HACS). En daardoor allemaal in de GUI van HA in te zien. En in NR heb ik elke ochtend een check of een van de containers vandaag ("sensor.vandaag") geleegd wordt. Zo ja, dan ontvang ik een bericht via Telegram.
Dat heb ik ook wel, alleen vrouwlief weigert HA te gebruiken en wilt het allemaal simpel houden. Een commando via Telegram ziet ze opzich nog wel zitten en dus kwam ik uit op deze constructie :+

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
DeadMetal schreef op zondag 24 mei 2020 @ 09:27:
@TheMystery ik probeer mee te denken, maar begrijp nog niet helemaal wanneer je het rolluik omlaag wil hebben. Want in je laatste code gaat hij omlaag bij hitte OF regen OF veel wind.

Maar ik zou denken dat je normaal gesproken een rolluik naar beneden wil hebben bij hitte, maar juist niet bij veel wind (i.v.m. beschadigen). En een zonnescherm of screen juist niet omlaag bij regen. Doet regen er voor een rolluik toe?

En wil je niet kijken naar de verwachte max. temperatuur voor vandaag i.p.v. de huidige temperatuur? Ik bedoel: als het op een dag 30+ graden gaat worden, wil je het rolluik misschien al omlaag hebben/houden vanaf zonsopgang (o.i.d) en niet pas vanaf het moment dat buiten eenmaal de 24 graden aangetikt is.
Klopt, wil ze dicht bij hitte, regen en wind.
Ik wil ze bij wind dicht omdat ik anders wel eens last heb dat mijn hor eruit waait en bij de buren ligt, en ik heb stevige rolluiken dus die kunnen dat wel hebben.
Bij regen dicht zodat mijn houten kozijnen niet nat worden en langer meegaan.

Goed idee voor de verwachte temperatuur die ga ik er misschien nog in verwerken.

Acties:
  • 0 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
TheMystery schreef op zondag 24 mei 2020 @ 12:20:
[...]
Goed idee voor de verwachte temperatuur die ga ik er misschien nog in verwerken.
Wat een beetje onhandig is aan de Buienradar-integration in HA, is dat je de verwachting voor de volgende dagen kan zien, en het huidige weer, maar niet de verwachte maximum temperatuur voor later vandaag.

Ik gebruik momenteel daarom de Darksky-module in NR, dan kan je het wel uitlezen via:
'data.daily.data[0].temperatureHigh'. Helaas heeft Apple Darksky opgekocht en zal die API eind dit jaar ophouden te bestaan. Mogelijk kan je nu al geen nieuwe API-key voor Darksky meer aanvragen.

Een alternatief: dagelijks NR om 23.59u in HA bij Buienradar kijken wat de verwachte maxtemp voor de volgende dag is, en die opslaan in een NR global variabele.
Als volgt:
code:
1
[{"id":"19428a98.aa574d","type":"inject","z":"9a51dd22.996408","name":"Temperatuur morgen opslaan","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"59 23 * * *","once":false,"onceDelay":0.1,"x":270,"y":320,"wires":[["2454740b.0ffac4"]]},{"id":"2454740b.0ffac4","type":"api-current-state","z":"9a51dd22.996408","name":"Weersverwachting ophalen","server":"2df28887.b05ab8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"weather.schiphol","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":540,"y":320,"wires":[["b6584b33.6bf9"]]},{"id":"b6584b33.6bf9","type":"change","z":"9a51dd22.996408","name":"","rules":[{"t":"set","p":"maxtemperatuur","pt":"global","to":"data.attributes.forecast[0].temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":320,"wires":[[]]},{"id":"2df28887.b05ab8","type":"server","z":"","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Zodat je die waarde de volgende dag in je automation voor het rolluik kan gebruiken.

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
@DeadMetal aangezien jij ook Telegram gebruikt: Weet jij of (en hoe) je een bericht in Telegram kan verwijderen? Ik wil mijn eigen commando's verwijderen en alleen de response laten staan... ;)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
TheMystery schreef op zaterdag 23 mei 2020 @ 20:45:
[...]

Dus nu zouden mijn rolluiken niet zo vaak op en neer meer mogen gaan
Dan kun je nog een trigger node gebruiken die je 1x per x minuten laat triggeren en zolang de condities nog gelden niet open doen.
DeadMetal schreef op zondag 24 mei 2020 @ 12:33:
[...]


Wat een beetje onhandig is aan de Buienradar-integration in HA, is dat je de verwachting voor de volgende dagen kan zien, en het huidige weer, maar niet de verwachte maximum temperatuur voor later vandaag.
Er is ook een buienradar node voor node-red met 1/5/10/30/60 minuten updates per locatie, je zou ook nog api.met.no kunnen gebruiken, die heeft data per 6 uur tijdsloten.

[ Voor 43% gewijzigd door z1rconium op 24-05-2020 15:46 ]


Acties:
  • +1 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
Toppe schreef op zondag 24 mei 2020 @ 14:39:
@DeadMetal aangezien jij ook Telegram gebruikt: Weet jij of (en hoe) je een bericht in Telegram kan verwijderen? Ik wil mijn eigen commando's verwijderen en alleen de response laten staan... ;)
Op je telefoon? Een bericht lang indrukken en dan op het prullenbak-icoon tikken?

Acties:
  • +1 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
Commands kan je niet verwijderen, alleen response messages.

[ Voor 8% gewijzigd door z1rconium op 24-05-2020 15:49 ]


Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
DeadMetal schreef op zondag 24 mei 2020 @ 15:46:
[...]


Op je telefoon? Een bericht lang indrukken en dan op het prullenbak-icoon tikken?
z1rconium schreef op zondag 24 mei 2020 @ 15:49:
Commands kan je niet verwijderen, alleen response messages.
Die weet ik, maar vanuit de API moet het mogelijk zijn om berichten te verwijderen. Maar antwoord is al gegeven ;)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • +1 Henk 'm!

  • FrankJ91
  • Registratie: September 2010
  • Laatst online: 15-09 14:29
TheMystery schreef op zaterdag 23 mei 2020 @ 20:45:
[...]

Heb het even getest met een debug, als ik de temperatuur op 25 zet dan gaat deze naar close, zet ik de wind op 45 is deze close, zet in de wind terug naar 20 dan blijft het close omdat de temperatuur nog te hoog is. Dus nu zouden mijn rolluiken niet zo vaak op en neer meer mogen gaan :)
Toevallig was ik hier van de week ook mee bezig. Leuk om te zien hoe jij nu ook probeert om de zonwering niet zo vaak op en neer te laten gaan. Ik doe het ook met het weer maar is voor mij ook nog wel een uitdaging hoe ik zon/regen en wind combineer. Heb zelf een node ertussen die het gemiddelde/max uitrekent, dus bij mij zou hij nooit elk minuut op en neergaan maar in het ergste geval wel elke 20 min... Helaas is het nu slecht weer maar deze week hoop ik te zien of hij beetje doet wat ik wil :p

Afbeeldingslocatie: https://tweakers.net/i/zq5Vfq0h6L3eL1KVVP48MX5iGXs=/800x/filters:strip_icc():strip_exif()/f/image/lngZ5GA39PhcBmMWVLXuhcHJ.jpg?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
FrankJ91 schreef op zondag 24 mei 2020 @ 20:56:
[...]


Toevallig was ik hier van de week ook mee bezig. Leuk om te zien hoe jij nu ook probeert om de zonwering niet zo vaak op en neer te laten gaan. Ik doe het ook met het weer maar is voor mij ook nog wel een uitdaging hoe ik zon/regen en wind combineer. Heb zelf een node ertussen die het gemiddelde/max uitrekent, dus bij mij zou hij nooit elk minuut op en neergaan maar in het ergste geval wel elke 20 min... Helaas is het nu slecht weer maar deze week hoop ik te zien of hij beetje doet wat ik wil :p

[Afbeelding]
Dit is wat ik eerst eigenlijk ook had 3 aparte inputs, hierdoor zal hij vaker op en neer gaan. Maar aangezien je het gemiddelde berekend op 20 min zal het niet zo erg zijn als bij mij idd.

Acties:
  • 0 Henk 'm!

  • FrankJ91
  • Registratie: September 2010
  • Laatst online: 15-09 14:29
TheMystery schreef op zondag 24 mei 2020 @ 21:13:
[...]


Dit is wat ik eerst eigenlijk ook had 3 aparte inputs, hierdoor zal hij vaker op en neer gaan. Maar aangezien je het gemiddelde berekend op 20 min zal het niet zo erg zijn als bij mij idd.
Inderdaad. Zou ook nog kunnen werken met timeSinceChangedMs. Dan controleer je of de state in een bepaalde tijd al niet is aangepast in Hass door de flow of handmatig.

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
Ik ben bezig om een flow te maken om Netflix te bedienen.
Ik heb een Logitech Harmony Hub + remote, chromecast en op mijn mobiel app Netflix.
De Chromecast zit rechtstreeks in een netwerkreceiver. (Denon AVR-X2500H)
Netflix wordt gecast via chromecast op mijn tv.

Met hulp van tweaker Jeltel heb ik nu deze flow
code:
1
[{"id":"96a4962b.a947c8","type":"server-events","z":"37aa64e6.42a41c","name":"Harmony Roku Command","server":"9f19cfb7.40b16","event_type":"roku_command","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"x":150,"y":700,"wires":[["fccdd23d.edeea"]]},{"id":"fccdd23d.edeea","type":"switch","z":"37aa64e6.42a41c","name":"Home Assistant","property":"payload.event.source_name","propertyType":"msg","rules":[{"t":"eq","v":"Home Assistant","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":360,"y":700,"wires":[["af0b7639.5d6b98"]]},{"id":"af0b7639.5d6b98","type":"switch","z":"37aa64e6.42a41c","name":"Key?","property":"payload.event.key","propertyType":"msg","rules":[{"t":"eq","v":"Play","vt":"str"},{"t":"eq","v":"Pause","vt":"str"},{"t":"eq","v":"Right","vt":"str"},{"t":"eq","v":"Left","vt":"str"},{"t":"eq","v":"Down","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":510,"y":700,"wires":[["2795958f.d9e0ca"],["2795958f.d9e0ca"],["50301b2a.0acd74"],["863956b7.05e1b8"],["e32bffb1.4d26c"]]},{"id":"2795958f.d9e0ca","type":"api-call-service","z":"37aa64e6.42a41c","name":"Tsunami Play/Pause","server":"9f19cfb7.40b16","version":1,"debugenabled":false,"service_domain":"media_player","service":"media_play_pause","entityId":"media_player.tsunami","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":760,"y":620,"wires":[[]]},{"id":"50301b2a.0acd74","type":"api-call-service","z":"37aa64e6.42a41c","name":"Tsunami Next","server":"9f19cfb7.40b16","version":1,"debugenabled":false,"service_domain":"media_player","service":"media_next_track","entityId":"media_player.tsunami","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":740,"y":680,"wires":[[]]},{"id":"863956b7.05e1b8","type":"api-call-service","z":"37aa64e6.42a41c","name":"Tsunami Previous","server":"9f19cfb7.40b16","version":1,"debugenabled":false,"service_domain":"media_player","service":"media_previous_track","entityId":"media_player.tsunami","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":750,"y":740,"wires":[[]]},{"id":"e32bffb1.4d26c","type":"api-call-service","z":"37aa64e6.42a41c","name":"Tsunami Stop","server":"9f19cfb7.40b16","version":1,"debugenabled":false,"service_domain":"media_player","service":"media_stop","entityId":"media_player.tsunami","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":740,"y":800,"wires":[[]]},{"id":"19206214.b6051e","type":"comment","z":"37aa64e6.42a41c","name":"Control Playback Tsunami from Harmony","info":"","x":200,"y":620,"wires":[]},{"id":"9f19cfb7.40b16","type":"server","z":"","name":"Home Assistant"}]


My lukt het maar om 2 commando's (play & pause) te starten.
Maar in pagina https://www.home-assistant.io/integrations/emulated_roku/ lees ik dat je wel 12 commando's kunt zenden.
In de flow zie ik dat er wordt verwezen naar chromecast, niet naar een roku remote.
Lukt dit alleen als je een roku device hebt? Wel heb ik integratie EmulatedRoku & Roku geinstalleerd en activiteit Roku toegevoegd aan mijn Harmony remote.
Met welke setup (of Node-Red node) kan ik andere commando's starten?

Acties:
  • +1 Henk 'm!

  • DaTuX
  • Registratie: Oktober 2002
  • Laatst online: 01-08 14:29

DaTuX

Tech Junkie

In mijn speurtocht naar een eenvoudige flow voor mijn bewegings melder (Ikea Tradfri dingetje)
kwam ik vooral nogal omslachtige dingen tegen met gates etc om te bepalen of er gereageerd moet worden op de detectie, bijvoorbeeld alleen actie als het donker is

dus zelf maar aan het prutsen gegaan om zo eenvoudig mogelijk een flow te maken en die met jullie te delen

ik gebruik deze nu een paar dagen met volle tevredenheid

Doel:
schakel lamp aan door bewegings detectie, schakel alleen als het donker is en ga na 2 minuten weer uit

klein detail de lamp kan ook fysiek geschakeld worden omdat het een Shelly 2.5 betreft, dit geeft een extra check in de aan en uit lijn die zou je er eventueel nog uit kunnen halen

additioneel component: ben erg goed te spreken over de light scheduler addon deze hebben ook een filter waar ik in deze flow dankbaar gebruik van maak om het eenvoudig te houden

Screenshot:

Afbeeldingslocatie: https://tweakers.net/i/Ycu5ZIWTKujGx9cZLxxsjJsoNcA=/800x/filters:strip_exif()/f/image/Yct8M6p39yOFa7MD5oHu52aF.png?f=fotoalbum_large

De "Stop if light On" en "Stop if light Off" zijn er dus ivm met manual override
ben ik bezig in de meterkast zoals elke tweaker regelmatig :+
moet de lamp niet na 2 minuten weer uitgaan (en heeft het sowieso geen zin om bericht te sturen)

De "Only When Dark" node betreft de LS Filter die een tijdschema / agenda heeft voor het globale time window dat deze mag werken en tevens de only when dark optie zodat hij rekening houd met de geolocatie en dus de zon stand

code:
1
[{"id":"bae38a96.1a6048","type":"tab","label":"Motion","disabled":false,"info":""},{"id":"53b0ab77.e2c674","type":"light-scheduler-filter","z":"bae38a96.1a6048","settings":"116171b3.74bfce","events":"[{\"start\":{\"dow\":1,\"mod\":1260},\"end\":{\"dow\":2,\"mod\":0}},{\"start\":{\"dow\":1,\"mod\":0},\"end\":{\"dow\":1,\"mod\":285}},{\"start\":{\"dow\":2,\"mod\":1260},\"end\":{\"dow\":3,\"mod\":0}},{\"start\":{\"dow\":2,\"mod\":0},\"end\":{\"dow\":2,\"mod\":285}},{\"start\":{\"dow\":3,\"mod\":0},\"end\":{\"dow\":3,\"mod\":285}},{\"start\":{\"dow\":4,\"mod\":0},\"end\":{\"dow\":4,\"mod\":285}},{\"start\":{\"dow\":5,\"mod\":0},\"end\":{\"dow\":5,\"mod\":285}},{\"start\":{\"dow\":6,\"mod\":0},\"end\":{\"dow\":6,\"mod\":285}},{\"start\":{\"dow\":0,\"mod\":0},\"end\":{\"dow\":0,\"mod\":285}},{\"start\":{\"dow\":3,\"mod\":1260},\"end\":{\"dow\":4,\"mod\":0}},{\"start\":{\"dow\":4,\"mod\":1260},\"end\":{\"dow\":5,\"mod\":0}},{\"start\":{\"dow\":5,\"mod\":1260},\"end\":{\"dow\":6,\"mod\":0}},{\"start\":{\"dow\":6,\"mod\":1260},\"end\":{\"dow\":0,\"mod\":0}},{\"start\":{\"dow\":0,\"mod\":1260},\"end\":{\"dow\":1,\"mod\":60}}]","name":"Only when dark","onlyWhenDark":true,"scheduleRndMax":0,"sunElevationThreshold":"-5","sunShowElevationInStatus":false,"x":300,"y":100,"wires":[["9d99f38e.d3654"],[]]},{"id":"cea6052c.fea4d8","type":"server-state-changed","z":"bae38a96.1a6048","name":"Motion Hal","server":"6326bb9a.98a074","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.0x680ae2fffefb1058_occupancy","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"x":120,"y":100,"wires":[["53b0ab77.e2c674"],[]]},{"id":"aae30670.40ea08","type":"stoptimer","z":"bae38a96.1a6048","duration":"2","units":"Minute","payloadtype":"str","payloadval":"off","name":"","x":500,"y":140,"wires":[[],["fe9a7403.771938"]]},{"id":"381880b9.834b6","type":"api-call-service","z":"bae38a96.1a6048","name":"Hal lamp On","server":"6326bb9a.98a074","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.shelly_hal_light_1","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":830,"y":40,"wires":[[]]},{"id":"62b921e1.23236","type":"api-call-service","z":"bae38a96.1a6048","name":"Hal Lamp Off","server":"6326bb9a.98a074","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.shelly_hal_light_1","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":850,"y":140,"wires":[[]]},{"id":"9d99f38e.d3654","type":"api-current-state","z":"bae38a96.1a6048","name":"Stop if light ON","server":"6326bb9a.98a074","version":1,"outputs":2,"halt_if":"ON","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.shelly_hal_light_1","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":500,"y":40,"wires":[[],["381880b9.834b6","aae30670.40ea08"]]},{"id":"fe9a7403.771938","type":"api-current-state","z":"bae38a96.1a6048","name":"Stop if light Off","server":"6326bb9a.98a074","version":1,"outputs":2,"halt_if":"OFF","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.shelly_hal_light_1","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":680,"y":140,"wires":[[],["62b921e1.23236"]]},{"id":"77da922a.3a6d9c","type":"comment","z":"bae38a96.1a6048","name":"Hallway pressence / motion actions","info":"# Hallway pressence / motion actions\n\nWhen motion is detected > check schedule if dark or time window is active.\n\ncheck if the light is already on (maybe manually by switching)\n\nif off? > then turn On and start timer.\n\nAt timer end > check if off (maybe manually)\nIf On > turn off","x":180,"y":40,"wires":[]},{"id":"116171b3.74bfce","type":"light-scheduler-settings","z":"","name":"Enschede","latitude":"52.2156666","longitude":"6.8906664000000005"},{"id":"6326bb9a.98a074","type":"server","z":"","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]


Wellicht heeft iemand er iets aan, success :), op en aanmerkingen worden gewaardeerd :)

een mening is zo sterk als de som van zijn argumenten


Acties:
  • 0 Henk 'm!

Verwijderd

CAD-tekenaar schreef op maandag 25 mei 2020 @ 19:52:

Met welke setup (of Node-Red node) kan ik andere commando's starten?
zit je op linux?
Indien ja: https://www.npmjs.com/package/harmonyHubCLI
is dus command line interface voor de harmony hub.
Je maakt het gewenste commando en bewaart het als een uitvoerbaar script.
In node red voeg je de exec node toe en linkt die naar de plaats waar je het script opsloeg.

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
Verwijderd schreef op dinsdag 26 mei 2020 @ 20:46:
[...]


zit je op linux?
Indien ja: https://www.npmjs.com/package/harmonyHubCLI
is dus command line interface voor de harmony hub.
Je maakt het gewenste commando en bewaart het als een uitvoerbaar script.
In node red voeg je de exec node toe en linkt die naar de plaats waar je het script opsloeg.
Bedankt voor je bericht. Gaat dit werken in app Netflix?
Ik cast Netflix van mijn telefoon via chromecast naar mijn tv. En heb ik integratie Roku nog nodig?
(Ik heb geen Roku tv/device)

Acties:
  • 0 Henk 'm!

  • AOC
  • Registratie: September 2001
  • Niet online

AOC

Wellicht een random vraag, maar ik ben benieuwd of node-red ook samen kan werken met boekhoudprogramma's. Mijn idee is namelijk dat wanneer klant x een factuur betaald heeft dat dan de toegang tot een online service automatisch een maand verlengd wordt. Anders zou ik de service handmatig aan/uit moeten schakelen :+

edit:

opgelost

[ Voor 3% gewijzigd door AOC op 27-05-2020 13:54 ]


Acties:
  • 0 Henk 'm!

  • Tsurany
  • Registratie: Juni 2006
  • Niet online

Tsurany

⭐⭐⭐⭐⭐

Waterkoker schreef op woensdag 27 mei 2020 @ 13:09:
Wellicht een random vraag, maar ik ben benieuwd of node-red ook samen kan werken met boekhoudprogramma's. Mijn idee is namelijk dat wanneer klant x een factuur betaald heeft dat dan de toegang tot een online service automatisch een maand verlengd wordt. Anders zou ik de service handmatig aan/uit moeten schakelen :+
De vraag is of jouw boekhoudpakket kan integreren met andere applicaties.

SMA SB5.0 + 16x Jinko 310wp OWO + 10x Jinko 310wp WNW |--|--| Daikin 4MXM68N + 1x FTXA50AW + 3x FTXM20N


Acties:
  • 0 Henk 'm!

  • AOC
  • Registratie: September 2001
  • Niet online

AOC

@Tsurany toevallig net Moneybird geprobeerd waar je m.b.v. een bearer token gebruik kan maken van de api. Ben er nu achter dat je met deze token kan inloggen op moneybird m.b.v. node-red. Als je direct je facturenoverzicht opent kan je met behulp van een html node bepaalde classes met content binnenhalen. Dus als persoon x = betaald dan start flow. Het is mogelijk en relatief makkelijk :)

Nu de vraag of een dergelijke connectie mbv een token wel veilig is binnen node-red? Node-red en de vps server heb ik wel beveiligd

[ Voor 14% gewijzigd door AOC op 27-05-2020 13:55 ]


Acties:
  • +1 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
Waterkoker schreef op woensdag 27 mei 2020 @ 13:54:
@Tsurany Nu de vraag of een dergelijke connectie mbv een token wel veilig is binnen node-red? Node-red en de vps server heb ik wel beveiligd
M.i. wel zolang je uiteraard niet de code van je flow en daarmee dat token met anderen deelt.
NR slaat zijn eigen gegevens m.i. niet encrypted op, dus zorg er ook voor dat niemand bij de inhoud van het systeem kan waar NR op draait.

Acties:
  • 0 Henk 'm!

  • AOC
  • Registratie: September 2001
  • Niet online

AOC

@DeadMetal mn vps heb ik met fail2ban en keyfile auth beveiligd. Verder node-red ook een auth ingesteld. Met mijn kennis hoop ik in ieder geval dat dit genoeg is :)

Acties:
  • +1 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
Waterkoker schreef op woensdag 27 mei 2020 @ 15:10:
@DeadMetal mn vps heb ik met fail2ban en keyfile auth beveiligd. Verder node-red ook een auth ingesteld. Met mijn kennis hoop ik in ieder geval dat dit genoeg is :)
Ik gebruik Moneybird niet, maar wellicht hebben ze ook nog de mogelijkheid om per api-key de rechten in te stellen. Bijv. dat NR dus enkel gegevens mag ophalen/uitlezen, maar geen bewerkingen mag doen.

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
Wellicht een hele domme vraag:

Ik heb een flow gemaakt die de airco uitzet als het raam open gaat. Nu zou ik graag een soort "bedenktijd" voor willen hebben: Als het raam binnen 2 minuten weer dicht gaat, stop het script.

Geprobeerd met een delay en dat werkt natuurlijk niet... Iemand die mij een zetje in de juiste richtingg kan geven?

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • CerielTjuh
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:24
Toppe schreef op woensdag 27 mei 2020 @ 20:15:
Wellicht een hele domme vraag:

Ik heb een flow gemaakt die de airco uitzet als het raam open gaat. Nu zou ik graag een soort "bedenktijd" voor willen hebben: Als het raam binnen 2 minuten weer dicht gaat, stop het script.

Geprobeerd met een delay en dat werkt natuurlijk niet... Iemand die mij een zetje in de juiste richtingg kan geven?
Meerdere mogelijkheden, je zou een counter kunnen pakken met een traffic light en b.v. iedere minuut een inject. Je kunt ook gewoon een delay gebruiken, maar daarvoor zouden we iets meer info van je huidige flow moeten weten.

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
CerielTjuh schreef op woensdag 27 mei 2020 @ 20:25:
[...]


Meerdere mogelijkheden, je zou een counter kunnen pakken met een traffic light en b.v. iedere minuut een inject. Je kunt ook gewoon een delay gebruiken, maar daarvoor zouden we iets meer info van je huidige flow moeten weten.
Dit is de flow zelf. De rechter "Telegram reply" kan je vergeten, die had daar niet moeten staan.

Afbeeldingslocatie: https://tweakers.net/i/9P1yyyCfTViB4YTV4QT3p-fk1ZE=/800x/filters:strip_exif()/f/image/mzTTyRqaGJXzAptfZ0zwsSLZ.png?f=fotoalbum_large

[ Voor 6% gewijzigd door Toppe op 27-05-2020 20:29 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • denuz
  • Registratie: Augustus 2006
  • Laatst online: 21:20
Toppe schreef op woensdag 27 mei 2020 @ 20:28:
[...]


Dit is de flow zelf. De rechter "Telegram reply" kan je vergeten, die had daar niet moeten staan.

[Afbeelding]
Je kunt hiervoor een trigger node gebruiken. De trigger node kun je laten cancelen als het raam weer dicht gaat. Laat maar weten als je voorbeeld nodig hebt, dan deel ik wel wat.

Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
DeadMetal schreef op zondag 24 mei 2020 @ 12:33:
[...]


Wat een beetje onhandig is aan de Buienradar-integration in HA, is dat je de verwachting voor de volgende dagen kan zien, en het huidige weer, maar niet de verwachte maximum temperatuur voor later vandaag.

Ik gebruik momenteel daarom de Darksky-module in NR, dan kan je het wel uitlezen via:
'data.daily.data[0].temperatureHigh'. Helaas heeft Apple Darksky opgekocht en zal die API eind dit jaar ophouden te bestaan. Mogelijk kan je nu al geen nieuwe API-key voor Darksky meer aanvragen.

Een alternatief: dagelijks NR om 23.59u in HA bij Buienradar kijken wat de verwachte maxtemp voor de volgende dag is, en die opslaan in een NR global variabele.
Als volgt:
code:
1
[{"id":"19428a98.aa574d","type":"inject","z":"9a51dd22.996408","name":"Temperatuur morgen opslaan","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"59 23 * * *","once":false,"onceDelay":0.1,"x":270,"y":320,"wires":[["2454740b.0ffac4"]]},{"id":"2454740b.0ffac4","type":"api-current-state","z":"9a51dd22.996408","name":"Weersverwachting ophalen","server":"2df28887.b05ab8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"weather.schiphol","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":540,"y":320,"wires":[["b6584b33.6bf9"]]},{"id":"b6584b33.6bf9","type":"change","z":"9a51dd22.996408","name":"","rules":[{"t":"set","p":"maxtemperatuur","pt":"global","to":"data.attributes.forecast[0].temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":320,"wires":[[]]},{"id":"2df28887.b05ab8","type":"server","z":"","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Zodat je die waarde de volgende dag in je automation voor het rolluik kan gebruiken.
Ik heb dit eens getest, maar krijg er alleen de waarde sunny uit, werkt dit bij jou wel?

Acties:
  • 0 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
TheMystery schreef op donderdag 28 mei 2020 @ 08:15:
[...]
Ik heb dit eens getest, maar krijg er alleen de waarde sunny uit, werkt dit bij jou wel?
Dan gebruik je denk ik een debug node op de msg.payload? Mijn code pakt een andere waarde, (msg.)data.attributes.forecast[0].temperature en stopt die in global.maxtemperatuur variabele

Ga in het zijpaneel eens naar het context-tab en druk op het refresh-icoon bij 'global', dan zou je dit moeten zien:
Afbeeldingslocatie: https://tweakers.net/i/4z_QxE03ZR_53a8pAmMI2vFyafU=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/77OXaEdzHQCcQBCuuhH2tmdD.png?f=user_large

Je kan vervolgens op elke willekeurige plek in NR die waarde opvragen en er wat mee doen, bijv. in een switch node.

Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
DeadMetal schreef op donderdag 28 mei 2020 @ 08:19:
[...]


Dan gebruik je denk ik een debug node op de msg.payload? Mijn code pakt een andere waarde, (msg.)data.attributes.forecast[0].temperature en stopt die in global.maxtemperatuur variabele

Ga in het zijpaneel eens naar het context-tab en druk op het refresh-icoon bij 'global', dan zou je dit moeten zien:
[Afbeelding]

Je kan vervolgens op elke willekeurige plek in NR die waarde opvragen en er wat mee doen, bijv. in een switch node.
Ja klopt, via de context tab zie ik wel de juiste waarde.
Bedankt weer wat geleerd.

edit:
en ik neem aan dan zo in mijn script verwerken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;
const maxtemp = global.maxtemperatuur;

if ((rain > 0.1) || (temp >= 24) || (wind >= 40) || (maxtemp >= 26)) {
    msg.payload = "close";
}
else {
    msg.payload = "open";
}
return msg;

[ Voor 23% gewijzigd door TheMystery op 28-05-2020 08:35 ]


Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
denuz schreef op woensdag 27 mei 2020 @ 21:34:
[...]

Je kunt hiervoor een trigger node gebruiken. De trigger node kun je laten cancelen als het raam weer dicht gaat. Laat maar weten als je voorbeeld nodig hebt, dan deel ik wel wat.
Het werkt! Had er al eerder naar zitten kijken maar vroeg me af hoe je hem kon resetten, maar de sensor in mijn flow kan ook uitsturen bij false (dicht). Even verbinden en een reset:true in de payload mee sturen en je bent klaar :+

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • denuz
  • Registratie: Augustus 2006
  • Laatst online: 21:20
Toppe schreef op donderdag 28 mei 2020 @ 17:04:
[...]


Het werkt! Had er al eerder naar zitten kijken maar vroeg me af hoe je hem kon resetten, maar de sensor in mijn flow kan ook uitsturen bij false (dicht). Even verbinden en een reset:true in de payload mee sturen en je bent klaar :+
De trigger kan resetten o.b.v. iedere payload. Als de sensor dus false uitstuurt bij dicht dan kun je bij de trigger onder; Reset the trigger if: msg.payload equals false invullen.

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
denuz schreef op donderdag 28 mei 2020 @ 17:18:
[...]


De trigger kan resetten o.b.v. iedere payload. Als de sensor dus false uitstuurt bij dicht dan kun je bij de trigger onder; Reset the trigger if: msg.payload equals false invullen.
Hmmm dat kan ook inderdaad. Nu heb ik gewoon de tweede output van de zelfde sensor gebruikt. Werkt ook zoals het moet ;)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
TheMystery schreef op donderdag 28 mei 2020 @ 08:29:
[...]
Ja klopt, via de context tab zie ik wel de juiste waarde.
Bedankt weer wat geleerd.

edit:
en ik neem aan dan zo in mijn script verwerken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const states = global.get('homeassistant').homeAssistant.states;

const rain = states["sensor.buienalarm_precipitation"].state;
const temp = states["sensor.br_temperature_2"].state;
const wind = states["sensor.br_wind_speed_2"].state;
const maxtemp = global.maxtemperatuur;

if ((rain > 0.1) || (temp >= 24) || (wind >= 40) || (maxtemp >= 26)) {
    msg.payload = "close";
}
else {
    msg.payload = "open";
}
return msg;
Wat is eigenlijk je 'trigger' om deze functie uit te voeren? Ik bedacht me ineens: als dat bijv. elke 10 minuten is, dan wil je niet dat hij vlak na middernacht al omlaag gaat, puur omdat het de volgende dag een warme dag gaat worden.
Da's dan weer het nadeel van functienodes, het geheel wordt weinig leesbaar. Misschien valt er wat met een traffic-light te doen, maar daar heb ik zelf geen ervaring mee.

Acties:
  • 0 Henk 'm!

  • TheMystery
  • Registratie: Februari 2004
  • Laatst online: 21:01
DeadMetal schreef op zaterdag 30 mei 2020 @ 09:04:
[...]


Wat is eigenlijk je 'trigger' om deze functie uit te voeren? Ik bedacht me ineens: als dat bijv. elke 10 minuten is, dan wil je niet dat hij vlak na middernacht al omlaag gaat, puur omdat het de volgende dag een warme dag gaat worden.
Da's dan weer het nadeel van functienodes, het geheel wordt weinig leesbaar. Misschien valt er wat met een traffic-light te doen, maar daar heb ik zelf geen ervaring mee.
Ik heb nu ingesteld dat doordeweeks de rolluiken om 9 omhoog gaan en om 18:30 omlaag, weekend 11 uur omhoog.
In de weerflow mogen de rolluiken alleen binnen dit window omhoog / omlaag gaan.
Afbeeldingslocatie: https://tweakers.net/i/rjUUrj721pwv7M9NvHhh3r3qOQk=/800x/filters:strip_icc():strip_exif()/f/image/d4J2Uw26ima6H3gn44GogR8V.jpg?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • DaTuX
  • Registratie: Oktober 2002
  • Laatst online: 01-08 14:29

DaTuX

Tech Junkie

TheMystery schreef op zaterdag 30 mei 2020 @ 09:23:
[...]


Ik heb nu ingesteld dat doordeweeks de rolluiken om 9 omhoog gaan en om 18:30 omlaag, weekend 11 uur omhoog.
In de weerflow mogen de rolluiken alleen binnen dit window omhoog / omlaag gaan.
[Afbeelding]
je zou eventueel nog wat van die timers en time filters kunnen vervangen met LS Filter zodat je 1 "agenda" hebt voor een hele week indeling

kun je voor meer dingen gebruiken dan alleen lampen :+

https://flows.nodered.org...d-contrib-light-scheduler

ikgebruik hem ook bv voor mijn motion detector dat deze alleen binnen bepaalde time windows reageerd maar in de winter maanden ook inde ochtend etc ipv alleen in de avond ...sky is the limit en ruimte de flow lekker op

een mening is zo sterk als de som van zijn argumenten


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Ik zit weer eens te spelen met hassio en wil eigenlijk dat home assistant in kan schatten of ik thuis slaap. Dat gaat niet met telefoons of BT trackers ofzo, maar ik wil trilsensors (van Xiaomi) en PIRs (idem) gebruiken.

Mijn idee was om een variabele elke dag om 2300 te zetten. "ik_ben_thuis = False" .
Als ik dan 3x/5x/10x een PIR of tril-sensor activeer gooi ik die variable op True.

Dit heeft dan invloed over of mijn espresso 's ochtends aangaat, danwel de boiler, etc etc etc.
Ik doe de aanname dat als ik om 2300 thuis ben ik thuis slaap :).


Zijn hier standaard scenario's / handige dingen voor of is dit helemaal zelf bouwen? (dat laatste is prima, maar ik verbaas me soms over de kant en klaar dingen bij hassio)

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
Boudewijn schreef op zaterdag 30 mei 2020 @ 22:06:


Zijn hier standaard scenario's / handige dingen voor of is dit helemaal zelf bouwen? (dat laatste is prima, maar ik verbaas me soms over de kant en klaar dingen bij hassio)
Alles is te maken.

>Mijn idee was om een variabele elke dag om 2300 te zetten. "ik_ben_thuis = False" .
>Als ik dan 3x/5x/10x een PIR of tril-sensor activeer gooi ik die variable op True.

Of je leest de arp tabel van je router; if mac in tabel, dan thuis.

Ik heb zelf geen ervaring met HA (anders dan dat ik het waardeloos vond om bij elke verandering in je config de boel te moeten herstarten) en heb alles in node-red. Ik kan me voorstellen dat je niet de enige bent die "presence" wil weten en daar iets mee wil doen, lijkt me dat HA dat kan.

Acties:
  • 0 Henk 'm!

  • Mich
  • Registratie: December 2000
  • Laatst online: 22:19
Ik heb een raar of grappig probleem met big-timer

Alle tijden die ik node-red zie zijn UTC tijden. Ik weet niet of ik hier wat aan kan doen, ik heb het niet kunnen vinden. Dus dit is mijn uitgangspunt.

Als ik in Big-Timer wil triggeren op een On-time en Off-time, dan moet ik of 2 uur verschil meerekenen of ik moet de "Man UTC" instelling op 2 zetten.

Als ik deze op 2 zet, maar vervolgens wil triggeren op Sunset, dan pakt hij de tijd van Sunset op mijn GPS locatie plus 2 uur.

Nu is dit wel weer te corrigeren maar mijn vraag is ik heel Node-Red gewoon op UTC+2 kan laten werken.

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 22:48
@Mich Waar draait je Node-RED? Ik heb hetzelfde gehad, bij mij bleek dat ik de parameter TZ=Europe/Amsterdam vergeten mee was te geven aan de Docker container waar Node-RED bij mij in draait.

[ Voor 6% gewijzigd door ThinkPad op 01-06-2020 19:34 ]


Acties:
  • +1 Henk 'm!

  • Mich
  • Registratie: December 2000
  • Laatst online: 22:19
ThinkPadd schreef op maandag 1 juni 2020 @ 19:33:
@Mich Waar draait je Node-RED? Ik heb hetzelfde gehad, bij mij bleek dat ik de parameter TZ=Europe/Amsterdam vergeten mee was te geven aan de Docker container waar Node-RED bij mij in draait.
Ik heb idd docker en had het in mijn docker-compose file staan. Maar blijkbaar verkeerd

Fout:
code:
1
2
environment:
      - TZ='Europe/Amsterdam'


Goed:
code:
1
2
environment:
      - TZ=Europe/Amsterdam


Al mijn dockers maar even aanpassen >:)

[ Voor 3% gewijzigd door Mich op 01-06-2020 20:13 ]


Acties:
  • +2 Henk 'm!

  • Mich
  • Registratie: December 2000
  • Laatst online: 22:19
Afbeeldingslocatie: https://tweakers.net/i/rGHDKt5R6_9-lgsP-lgXBYSdeag=/800x/filters:strip_exif()/f/image/IE5D5wzz6PFlodBttyAAjX8B.png?f=fotoalbum_large

Mijn eerste "serieuze" automatisering van Home Assistant overgezet naar Node-Red: lampen in de woonkamer in of uitschakelen.

Ik weet het aantal Lux in de kamer. Als deze waarde lager is dan 60 lux gaan de lampen aan. Gebeurt dit overdag (winter + bewolkt) maar komt later de zon en stijgt de lichtsterkte naar boven de 100 gaan de lampen weer uit. Om te voorkomen dat hij aan-uit-aan-uit gaat heb ik een filter er tussen zitten die een gemiddelde maakt van de laatste 3 gemeten waarden.

Tevens schakelt hij op tijd. Op het moment dat er nog beweging is of de TV staat nog aan wordt er een uur bij de tijd opgeteld.

De lampen, beweging en licht meting komen via Zwave2MQTT. Ik twijfel nog of ik ze niet rechtstreeks via MQTT inlees en aanstuur. Dan gaat het over minder schijven heen.

(edit, ik heb nog work in progress. De eindtijd verlengen moet eigenlijk eenmalig gebeuren net voor de big-timer afloopt, anders gaat hij begin de avond gelijk een uur er bij optellen :P )

[ Voor 7% gewijzigd door Mich op 02-06-2020 19:52 ]


Acties:
  • 0 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
Mich schreef op dinsdag 2 juni 2020 @ 19:50:
Als deze waarde lager is dan 60 lux gaan de lampen aan. Gebeurt dit overdag (winter + bewolkt) maar komt later de zon en stijgt de lichtsterkte naar boven de 100 gaan de lampen weer uit. Om te voorkomen dat hij aan-uit-aan-uit gaat heb ik een filter er tussen zitten die een gemiddelde maakt van de laatste 3 gemeten waarden.
Je kunt het nog "gelikter" maken dmv een range node zodat je lampen feller/zachter gaan tussen de 60 en 100 (brightness 0-max), dus hoe donkerder het worder hoe feller de lampen (mits je lampen dat ondersteunen uiteraard) :)

[ Voor 3% gewijzigd door z1rconium op 03-06-2020 07:28 ]


Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
Mich schreef op dinsdag 2 juni 2020 @ 19:50:
[Afbeelding]

Mijn eerste "serieuze" automatisering van Home Assistant overgezet naar Node-Red: lampen in de woonkamer in of uitschakelen.

Ik weet het aantal Lux in de kamer. Als deze waarde lager is dan 60 lux gaan de lampen aan. Gebeurt dit overdag (winter + bewolkt) maar komt later de zon en stijgt de lichtsterkte naar boven de 100 gaan de lampen weer uit. Om te voorkomen dat hij aan-uit-aan-uit gaat heb ik een filter er tussen zitten die een gemiddelde maakt van de laatste 3 gemeten waarden.

Tevens schakelt hij op tijd. Op het moment dat er nog beweging is of de TV staat nog aan wordt er een uur bij de tijd opgeteld.

De lampen, beweging en licht meting komen via Zwave2MQTT. Ik twijfel nog of ik ze niet rechtstreeks via MQTT inlees en aanstuur. Dan gaat het over minder schijven heen.

(edit, ik heb nog work in progress. De eindtijd verlengen moet eigenlijk eenmalig gebeuren net voor de big-timer afloopt, anders gaat hij begin de avond gelijk een uur er bij optellen :P )
Met welk device meet je de lux?
Ik ben opzoek naar een betrouwbare zigbee sensor die lux meet onafhankelijk van beweging.

Acties:
  • 0 Henk 'm!

  • Kaspers
  • Registratie: Juni 2004
  • Laatst online: 18-09 22:31
CAD-tekenaar schreef op woensdag 3 juni 2020 @ 09:10:
Met welk device meet je de lux?
Ik ben opzoek naar een betrouwbare zigbee sensor die lux meet onafhankelijk van beweging.
Ik heb goede ervaring met de xiaomi mijia smart home light sensor, icm deconz:

Afbeeldingslocatie: https://tweakers.net/i/fh1HQ3_yBy60_TOpo6qHcvhgT10=/full-fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/Lc09N64VAUei97Kr1p9bmG3t.png?f=user_large

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
Dank voor de tip! Deze wil ik ook gebruiken voor tuin- en kamerverlichting! Nu mijn Node-Red flow aanpassen voor deze sensor, want mijn huidige flow i.c.m. sensor.daylight (van deCONZ) werkt niet. :(

Acties:
  • 0 Henk 'm!

  • EquiNox
  • Registratie: Januari 2000
  • Niet online

EquiNox

Speed plz.

Hoi, ben ook aan het experimenten met Node-Red (koppeling met nora en Domoticz). Ik gebruik het voornamelijk om mijn Milight-lampen (mix van RGB en RGBWW) aan te sturen.

Ik loop tegen 2 dingen aan, die ik echt niet voor elkaar krijg :

- Aanleveren van kamertemperatuur (svalue1) vanuit Domoticz (krijgt ie weer van een gehackte toon) naar Google Home (via Nora). Ik krijg de inhoud van MQTT netjes binnen, maar de Thermostaat node (nora) pakt dit niet op. Ik moet dit op één of andere manier vertalen. Ik vermoed dat ik iets mis qua Function Node.
- Aansturen van RGBWW Milight ampen in Domoticz. RGB lukt prima, aan en uitzetten (+ brightness) ook, maar ik krijg de RGBWW functie niet aan de praat. Wederom zal mijn Function Node niet kloppen.

Dit is mijn flow (id's etc eruit).
[{"id":"aa1afef9.7784b","type":"tab","label":"Inactive","disabled":false,"info":""},{"id":"20477061.33175","type":"mqtt in","z":"aa1afef9.7784b","name":"","topic":"domoticz/out","qos":"2","datatype":"auto","broker":"","x":150,"y":240,"wires":[["fdd9aaef.0ae8f8","b605a4f4.fb0038"]]},{"id":"fdd9aaef.0ae8f8","type":"json","z":"aa1afef9.7784b","name":"","property":"payload","action":"","pretty":false,"x":330,"y":240,"wires":[["baf1d0cf.23d79"]]},{"id":"baf1d0cf.23d79","type":"switch","z":"aa1afef9.7784b","name":"","property":"payload.switchType","propertyType":"msg","rules":[{"t":"cont","v":"On/Off","vt":"str"},{"t":"eq","v":"Dimmer","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":470,"y":240,"wires":[[],["1e2300b2.f88f4f"]]},{"id":"1e2300b2.f88f4f","type":"function","z":"aa1afef9.7784b","name":"Function Dimmer","func":"msg.topic = msg.payload.idx\nvar brightness = msg.payload.svalue1\nif (msg.payload.nvalue === 1)\n{\n msg.payload = 100\n}\nelse if (msg.payload.nvalue === 0)\n{\n msg.payload = 0\n}\nelse if (msg.payload.nvalue === 2)\n{\n msg.payload = brightness\n}\n return msg;\n\n","outputs":1,"noerr":0,"x":650,"y":240,"wires":[["2ab9db1d.abf834"]]},{"id":"2ab9db1d.abf834","type":"switch","z":"aa1afef9.7784b","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"17","vt":"str"},{"t":"eq","v":"18","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":850,"y":240,"wires":[[],["cc136cdd.e5aed"]]},{"id":"43c300ef.6fbf","type":"function","z":"aa1afef9.7784b","name":"Function out Dimmer","func":"var idx = parseInt(msg.topic)\nvar brightness = msg.payload\nif ( msg.payload === 0 )\n{\nmsg.payload = { \"command\": \"switchlight\", \"idx\": idx, \"switchcmd\": \"Off\" };\nreturn [msg, null]\n}\nelse\n{\nmsg.payload = { \"command\": \"switchlight\", \"idx\": idx, \"switchcmd\": \"Set Level\", \"level\": brightness };\nreturn [null, msg]\n}\n\n\n","outputs":2,"noerr":0,"x":1500,"y":240,"wires":[["309e00b4.9941d"],["309e00b4.9941d"]]},{"id":"309e00b4.9941d","type":"json","z":"aa1afef9.7784b","name":"","property":"payload","action":"","pretty":false,"x":1690,"y":240,"wires":[["6d3f863a.8cfec8"]]},{"id":"6d3f863a.8cfec8","type":"mqtt out","z":"aa1afef9.7784b","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"","x":1910,"y":240,"wires":[]},{"id":"cc136cdd.e5aed","type":"nora-light","z":"aa1afef9.7784b","devicename":"Schemerlampen","lightcolor":true,"brightnesscontrol":true,"turnonwhenbrightnesschanges":true,"passthru":false,"statepayload":false,"brightnessoverride":"100","roomhint":"Woonkamer","name":"Schemerlampen","nora":"","topic":"17","onvalue":"true","onvalueType":"bool","offvalue":"false","offvalueType":"bool","x":1140,"y":240,"wires":[["43c300ef.6fbf"]]},{"id":"6bb7f995.cacfa8","type":"nora-light","z":"aa1afef9.7784b","devicename":"Stalampen","lightcolor":true,"brightnesscontrol":true,"turnonwhenbrightnesschanges":true,"passthru":false,"statepayload":false,"brightnessoverride":"100","roomhint":"Woonkamer","name":"Stalampen","nora":"","topic":"18","onvalue":"true","onvalueType":"bool","offvalue":"false","offvalueType":"bool","x":1150,"y":300,"wires":[["43c300ef.6fbf"]]},{"id":"61fbb44.70dbc4c","type":"nora-thermostat","z":"aa1afef9.7784b","devicename":"Thermostaat","roomhint":"Woonkamer","name":"Thermostaat","modes":"off,heat,heatcool,on,auto","unit":"C","topic":"46","passthru":false,"commandOnly":false,"queryOnly":false,"bufferRangeCelsius":"","nora":"","x":1150,"y":420,"wires":[["ac7e7d83.ff948"]]},{"id":"ac7e7d83.ff948","type":"function","z":"aa1afef9.7784b","name":"Function Thermostaat","func":"var idx = parseInt(msg.topic)\n{\nmsg.payload = { \"idx\": idx, \"svalue\": (msg.payload.setpoint.toString())};\nreturn msg\n}","outputs":1,"noerr":0,"x":1500,"y":420,"wires":[["dfd91eeb.91414"]]},{"id":"dfd91eeb.91414","type":"json","z":"aa1afef9.7784b","name":"","property":"payload","action":"","pretty":false,"x":1690,"y":420,"wires":[["6d3f863a.8cfec8"]]},{"id":"13845ec1.328431","type":"debug","z":"aa1afef9.7784b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1130,"y":540,"wires":[]},{"id":"b605a4f4.fb0038","type":"json","z":"aa1afef9.7784b","name":"","property":"payload","action":"","pretty":false,"x":330,"y":420,"wires":[["eec0ac96.9347e"]]},{"id":"eec0ac96.9347e","type":"switch","z":"aa1afef9.7784b","name":"","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"45","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":490,"y":420,"wires":[["b368f9d7.a852d8"]]},{"id":"b368f9d7.a852d8","type":"change","z":"aa1afef9.7784b","name":"","rules":[{"t":"set","p":"svalue1","pt":"msg","to":"temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":420,"wires":[["13845ec1.328431"]]}]
Dit is wat MQTT aanlevert op de domoticz/out node voor de Thermostaat :
domoticz/out {
"Battery" : 255,
"RSSI" : 12,
"description" : "",
"dtype" : "Temp",
"hwid" : "7",
"id" : "82045",
"idx" : 45,
"name" : "ToonTemperature",
"nvalue" : 0,
"stype" : "LaCrosse TX3",
"svalue1" : "22.84",
"unit" : 1
}
Kan iemand me op weg helpen? Ik ben geen programmeerwonder.

[ Voor 3% gewijzigd door EquiNox op 03-06-2020 13:49 ]


Acties:
  • +1 Henk 'm!

  • Heronimo
  • Registratie: Februari 2006
  • Laatst online: 19:45
@CAD-tekenaar @Kaspers Ik gebruik de Aqara motion sensor, die meet naast beweging ook lichtsterkte: pricewatch: Aqara Motion Sensor

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
Heronimo schreef op woensdag 3 juni 2020 @ 16:18:
@CAD-tekenaar @Kaspers Ik gebruik de Aqara motion sensor, die meet naast beweging ook lichtsterkte: pricewatch: Aqara Motion Sensor
Klopt het dat deze alleen lux meet bij beweging?

Acties:
  • 0 Henk 'm!

  • Heronimo
  • Registratie: Februari 2006
  • Laatst online: 19:45
CAD-tekenaar schreef op woensdag 3 juni 2020 @ 16:42:
[...]

Klopt het dat deze alleen lux meet bij beweging?
Bij beweging of na 50 tot 60 minuten. Althans als je zigbee2mqtt gebruikt, ik weet niet hoe dat bij andere software gaat. Zie ook:
https://github.com/Koenkk/zigbee2mqtt/issues/827

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
Heronimo schreef op woensdag 3 juni 2020 @ 16:45:
[...]


Bij beweging of na 50 tot 60 minuten. Althans als je zigbee2mqtt gebruikt, ik weet niet hoe dat bij andere software gaat. Zie ook:
https://github.com/Koenkk/zigbee2mqtt/issues/827
Gevonden in een ander forum:
https://gathering.tweaker...message/61853408#61853408
De Smart ligth sensor zou het beter doen!

Acties:
  • 0 Henk 'm!

  • Heronimo
  • Registratie: Februari 2006
  • Laatst online: 19:45
CAD-tekenaar schreef op woensdag 3 juni 2020 @ 16:46:
[...]


Gevonden in een ander forum:
https://gathering.tweaker...message/61853408#61853408
De Smart ligth sensor zou het beter doen!
Ligt dus een beetje aan je toepassing. Ik gebruik ze primair voor beweging. En de licht niveaus zijn goed genoeg om de verlichting mee te schakelen omdat hij dus regelmatig update als er iemand in de kamer aanwezig is.

Acties:
  • 0 Henk 'm!
Ik gebruik de Hue motion sensor. Die meet ook lux, onafhankelijk van beweging

Acties:
  • 0 Henk 'm!

  • Mich
  • Registratie: December 2000
  • Laatst online: 22:19
CAD-tekenaar schreef op woensdag 3 juni 2020 @ 09:10:
[...]


Met welk device meet je de lux?
Ik ben opzoek naar een betrouwbare zigbee sensor die lux meet onafhankelijk van beweging.
Die van mij is van fibaro maar het is met zwave communicatie. Hij meet onafhankelijk van beweging en grote schommelingen zoals een Wolk voor de zon of bedekken met je hand stuurt hij direct door.

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 22:52
lolgast schreef op woensdag 3 juni 2020 @ 17:07:
Ik gebruik de Hue motion sensor. Die meet ook lux, onafhankelijk van beweging
Een motion sensor voor 35 euro? Da's me iets te prijzig.

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Wie heeft er ervaring met de grafiek node(s) .. best een irritant stukje software ..

ik zou de x en y as om willen draaien maar dat vind de software niet "grappig"

[ Voor 32% gewijzigd door vso op 03-06-2020 21:21 ]

Tja vanalles


Acties:
  • 0 Henk 'm!
CAD-tekenaar schreef op woensdag 3 juni 2020 @ 21:15:
[...]

Een motion sensor voor 35 euro? Da's me iets te prijzig.
Hij werkt wel goed :+

Zonder gekkigheid, ik ben wel echt heel tevreden over die sensor. Hij rapporteert lux bij wijzigingen, niet eens in de zoveel tijd. Beweging is ook snel te detecteren en vanuit de Hue app kun je de gevoeligheid instellen

Acties:
  • 0 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
vso schreef op woensdag 3 juni 2020 @ 21:21:
Wie heeft er ervaring met de grafiek node(s) .. best een irritant stukje software ..

ik zou de x en y as om willen draaien maar dat vind de software niet "grappig"
Irritant ja en nee, hij verwacht een specifiek formaat en dat is niet voor iedereen even simpel.
De 'x' accepteert alleen een timestamp (ISO8601 of epoch), geen andere waarden.
En ook al heb je geen labels of series, je moet ze meesturen met een lege array anders werkt het niet.

Zie documentatie. Als je x/y wilt omdraaien dan kun je dat met "non-timeseries data" doen.
lolgast schreef op donderdag 4 juni 2020 @ 08:09:
[...]

Hij werkt wel goed :+

Zonder gekkigheid, ik ben wel echt heel tevreden over die sensor. Hij rapporteert lux bij wijzigingen, niet eens in de zoveel tijd. Beweging is ook snel te detecteren en vanuit de Hue app kun je de gevoeligheid instellen
Eens, ik heb het er ook aan uitgegeven, lux rapporteert ie 1x per 5 minuten, en batterij gaat meer dan een jaar mee, werkt goed.

[ Voor 30% gewijzigd door z1rconium op 04-06-2020 09:09 ]


Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

z1rconium schreef op donderdag 4 juni 2020 @ 09:00:
[...]

Irritant ja en nee, hij verwacht een specifiek formaat en dat is niet voor iedereen even simpel.
De 'x' accepteert alleen een timestamp (ISO8601 of epoch), geen andere waarden.
En ook al heb je geen labels of series, je moet ze meesturen met een lege array anders werkt het niet.

Zie documentatie. Als je x/y wilt omdraaien dan kun je dat met "non-timeseries data" doen.
ik had de documentatie gezien moest alleen ff de frustatie uiten ..

Ik ben nu de RRD data uit een Eneco Toon aan het trekken .. en in een grafiek aan het stoppen, hoewel het werkt is het resultaat niet echt om over naar huis te schrijven, maar dit ligt aan de Toon niet aan NR

Tja vanalles


Acties:
  • +3 Henk 'm!

  • DeadMetal
  • Registratie: Mei 2002
  • Laatst online: 19-09 13:19
Hier alvast wat info over de aankomende NR versie:
https://discourse.nodered...1-0-beta-1-released/27761

Acties:
  • 0 Henk 'm!

  • roynolf
  • Registratie: December 2009
  • Laatst online: 05-12-2023
Ik loop nu al een aantal keer aan tegen onderstaand probleem en ik vind weet voorlopig geen raad.

Ik wil een notificatie ontvangen wanneer iemand zich langer dan 2 minuten in een 'zone' (Home Assistant) bevindt.

Daarvoor heb ik volgende flow opgezet:
Afbeeldingslocatie: https://tweakers.net/i/SGlhSTSx7Slf9O_0daAFYRwplGI=/800x/filters:strip_exif()/f/image/HT106FtaHCeIPvU9buv7d0nc.png?f=fotoalbum_large

Ik trigger deze flow bij een statusverandering (lees zoneverandering). Ik stockeer deze waarde in een flow variabele. Nadien wacht ik 2 minuten en vraag ik de huidige status op. Deze stockeer ik nadien een nieuwe variabele om nadien via een functie node beide tegen elkaar af te wegen. Indien gelijk wordt een notificatie verzonden. Tot hier gaat het conceptueel goed :P

Alleen zie je op bovenstaande flow dat de persoon na 2 minuten in een nieuwe zone zit terwijl dit niet het geval is als ik de history controleer:

Afbeeldingslocatie: https://tweakers.net/i/81zTvGr-8ngI1SDPK_3-C9ecRsY=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/1iR79MFE2BcPBcHRpzGFByZK.png?f=user_large

Hier zie je duidelijk dat de status veranderde om 17:18 en nadien niet meer. Toch geeft de huidige zonestatus nog altijd een 'oudere' waarde aan. Lopen jullie ook wel eens tegen dit probleem aan? Zoja, bestaat hiervoor een oplossing?

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

roynolf schreef op donderdag 4 juni 2020 @ 17:38:
Ik loop nu al een aantal keer aan tegen onderstaand probleem en ik vind weet voorlopig geen raad.

Ik wil een notificatie ontvangen wanneer iemand zich langer dan 2 minuten in een 'zone' (Home Assistant) bevindt.

Daarvoor heb ik volgende flow opgezet:
[Afbeelding]

Ik trigger deze flow bij een statusverandering (lees zoneverandering). Ik stockeer deze waarde in een flow variabele. Nadien wacht ik 2 minuten en vraag ik de huidige status op. Deze stockeer ik nadien een nieuwe variabele om nadien via een functie node beide tegen elkaar af te wegen. Indien gelijk wordt een notificatie verzonden. Tot hier gaat het conceptueel goed :P

Alleen zie je op bovenstaande flow dat de persoon na 2 minuten in een nieuwe zone zit terwijl dit niet het geval is als ik de history controleer:

[Afbeelding]

Hier zie je duidelijk dat de status veranderde om 17:18 en nadien niet meer. Toch geeft de huidige zonestatus nog altijd een 'oudere' waarde aan. Lopen jullie ook wel eens tegen dit probleem aan? Zoja, bestaat hiervoor een oplossing?
Probeer een trigger node (trigger & block) .. dan kan je op een bepaalde voorwaarde het originele bericht doorsturen

bouw anders een test flow waarbij je de waardes zelf injecteert .. iets verandert wellicht in de flow. ? gokje

Tja vanalles


Acties:
  • 0 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
Zeker niet gebruiken voor je huidige productie flows ;) Ben het aan testen voor feedback. Zitten erg toffe/welkome opties in voor groeperen.

Acties:
  • +3 Henk 'm!

  • Kaspers
  • Registratie: Juni 2004
  • Laatst online: 18-09 22:31
Voor de mensen die nodered gebruiken icm home-assistant (node-red-contrib-home-assistant-websocket):

Ik heb een generieke subflow gemaakt waarmee je kunt controleren of een entity_id in een afgelopen periode geactiveerd is geweest (dit mogen ook groepen van entities zijn):

Afbeeldingslocatie: https://tweakers.net/i/lmL2mKfo2mVrRLcyEweZ1O6REyM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/P2Om0GCZh3dQ7IKJAjq6xblB.png?f=user_large

Ik gebruik het in mijn flows veelvuldig om te controleren of ergens beweging is geweest in de afgelopen periode.

De parameters zijn:
Afbeeldingslocatie: https://tweakers.net/i/Wnwl5FXLuisehs5ApMtCw24uUDM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/0aGI9fDSZ4cQdkSWblFWeAKu.png?f=user_large
de 'relativetime' is op te geven als in seconden/minuten/uren/dagen etc.

Na activatie wordt in de node-status weergegeven wat de uitkomst is:
Afbeeldingslocatie: https://tweakers.net/i/AxOI88vMHErpQN-599JVSiBUp_s=/800x/filters:strip_exif()/f/image/iuyZoucb6W5v1mMko2sI1rvC.png?f=fotoalbum_large

De subflow ziet er als volgt uit:

Afbeeldingslocatie: https://tweakers.net/i/6sGXzBMowZbWO7AoKxpyeOGdwO4=/800x/filters:strip_exif()/f/image/cvJUznK3zLeXtn2w52xerbFT.png?f=fotoalbum_large

source:
code:
1
[{"id":"60676910.580098","type":"subflow","name":"Presence in relativetime","info":"","category":"motion","in":[{"x":80,"y":180,"wires":[{"id":"29525032.f74a38"}]}],"out":[{"x":1220,"y":160,"wires":[{"id":"7d32cad1.bc7eb4","port":0}]},{"x":1220,"y":220,"wires":[{"id":"7d32cad1.bc7eb4","port":1}]}],"env":[{"name":"relativetime","type":"str","value":"60 minutes"},{"name":"entity_id","type":"str","value":""}],"color":"#D8BFD8","outputLabels":["Yes","No"],"status":{"x":1620,"y":180,"wires":[{"id":"65c7a45f.e02fcc","port":0},{"id":"dd35b249.ca2678","port":0}]}},{"id":"a8b703aa.8ed528","type":"api-get-history","z":"60676910.580098","name":"get motion history of entity with relativetime","server":"3467b66e.566902","startdate":"","enddate":"","entityid":"{{ entity_id }}","entityidtype":"is","useRelativeTime":true,"relativeTime":"{{ relativetime }}","flatten":false,"output_type":"array","output_location_type":"msg","output_location":"data","x":480,"y":180,"wires":[["944cc8a7.2ab958"]]},{"id":"944cc8a7.2ab958","type":"change","z":"60676910.580098","name":"Get most recent datetime when state = on","rules":[{"t":"set","p":"state_on_datetime","pt":"msg","to":"data[0][state='on'][-1].last_updated","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":850,"y":180,"wires":[["7d32cad1.bc7eb4"]]},{"id":"7d32cad1.bc7eb4","type":"switch","z":"60676910.580098","name":"motion?","property":"state_on_datetime","propertyType":"msg","rules":[{"t":"nnull"},{"t":"null"}],"checkall":"true","repair":false,"outputs":2,"x":1100,"y":180,"wires":[["fc1d3f58.2280f8"],["b291a48a.085488"]]},{"id":"29525032.f74a38","type":"change","z":"60676910.580098","name":"set input vars","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"relativetime","pt":"msg","to":"relativetime","tot":"env"},{"t":"set","p":"entity_id","pt":"msg","to":"entity_id","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":200,"y":180,"wires":[["a8b703aa.8ed528"]]},{"id":"65c7a45f.e02fcc","type":"template","z":"60676910.580098","name":"set status payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Yes, {{ diff }} minutes ago.","output":"str","x":1490,"y":160,"wires":[[]]},{"id":"76434c25.ba383c","type":"api-get-history","z":"60676910.580098","name":"get motion history of entity without relativetime","server":"3467b66e.566902","startdate":"","enddate":"","entityid":"{{ entity_id }}","entityidtype":"is","useRelativeTime":false,"relativeTime":"","flatten":false,"output_type":"array","output_location_type":"msg","output_location":"data","x":590,"y":240,"wires":[["38366ea2.ef0152"]]},{"id":"38366ea2.ef0152","type":"change","z":"60676910.580098","name":"Get most recent datetime when state = on","rules":[{"t":"set","p":"state_on_datetime","pt":"msg","to":"data[0][state='on'][-1].last_updated","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":990,"y":240,"wires":[["b2119c46.df255"]]},{"id":"dd35b249.ca2678","type":"template","z":"60676910.580098","name":"set status payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"No, last presence was {{ diff }} minutes ago.","output":"str","x":1490,"y":200,"wires":[[]]},{"id":"b291a48a.085488","type":"change","z":"60676910.580098","name":"delete relativetime parameters","rules":[{"t":"delete","p":"relativetime","pt":"msg"},{"t":"delete","p":"startdate","pt":"msg"},{"t":"delete","p":"enddate","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":250,"y":240,"wires":[["76434c25.ba383c"]]},{"id":"fc1d3f58.2280f8","type":"function","z":"60676910.580098","name":"calculate diff","func":"// format strin to date\nmsg.state_on_datetime = Date.parse(msg.state_on_datetime);\nvar currentDate = new Date();\n\nvar timeDiff = Math.abs(msg.state_on_datetime - currentDate);\ntimeDiff = timeDiff / 1000 / 60; //from miliseconds, to seconds, to minutes\nmsg.diff = Number(timeDiff.toFixed(0)); //afronden naar hele minuten\n\nreturn msg;","outputs":1,"noerr":0,"x":1290,"y":100,"wires":[["65c7a45f.e02fcc"]]},{"id":"b2119c46.df255","type":"function","z":"60676910.580098","name":"calculate diff","func":"// format strin to date\nmsg.state_on_datetime = Date.parse(msg.state_on_datetime);\nvar currentDate = new Date();\n\nvar timeDiff = Math.abs(msg.state_on_datetime - currentDate);\ntimeDiff = timeDiff / 1000 / 60; //from miliseconds, to seconds, to minutes\nmsg.diff = Number(timeDiff.toFixed(0)); //afronden naar hele minuten\n\nreturn msg;","outputs":1,"noerr":0,"x":1270,"y":260,"wires":[["dd35b249.ca2678"]]},{"id":"3467b66e.566902","type":"server","z":"","name":"Home Assistant","legacy":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]


Na importeren komt de subflow beschikbaar in je palette:
Afbeeldingslocatie: https://tweakers.net/i/1yq0OAiR4gblsFU80Y5bL3GXn4k=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/DXTUkWUhWq9kgBVkokEZvEX0.png?f=user_large

Ontzettend handig bijvoorbeeld bij het automatisch uitschakelen van verlichting, wanneer er geen beweging heeft plaatsgevonden in het afgelopen half uur:

Afbeeldingslocatie: https://tweakers.net/i/nhvfYnl9Xg826g068c7GZThzAYQ=/800x/filters:strip_exif()/f/image/93J4F8qYSfhBnWcbJTpobu5K.png?f=fotoalbum_large

En wanneer er wel beweging heeft plaatsgevonden -> delay 30 minuten -> probeer 't opnieuw.

Of:
Afbeeldingslocatie: https://tweakers.net/i/kKM5Uk3ugk_oUx7l1eFW8QvigRU=/800x/filters:strip_exif()/f/image/jcbU7ieXLknw92HvsjAbBoy1.png?f=fotoalbum_large

Wanneer er in de afgelopen 4 uur geen beweging is geconstateerd in de woonkamer, geef bij binnenkomst in de keuken via TextToSpeech (Alexa) een gesproken notificatie welke afvalcontainers vandaag bij de weg gezet moeten worden (dus dit gebeurt meestal 's ochtends wanneer je opstaat en de keuken inloopt).

[ Voor 8% gewijzigd door Kaspers op 05-06-2020 10:47 ]


Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
Ondertussen lekker aan de hobby met Node-Red en het werkt erg prettig moet ik toegeven.

Dit is mijn flow die ik gebruik om de verlichting van de trap te schakelen aan de hand van de hoeveelheid lux. Ook dit werkt lekker. Echter wil ik ook het licht kunnen aanzetten en dan gewoon de trap op en aflopen zonder dat hij aangaat. Dit lukt me (nog) niet.

Bij "Status verlichting" zou ik iets van een true/false resultaat willen 'opslaan' en dan bij "Schakel trap uit" eerst willen kijken of dit true is. Zo ja, dan niet uitschakelen.
Afbeeldingslocatie: https://tweakers.net/i/IB3WHO6SrRnRn57wDwrre2IKUOQ=/800x/filters:strip_exif()/f/image/G1UHVnoBKbfLG2Hy6VQGYJcw.png?f=fotoalbum_large

Het plaatsen van de "Status verlichting" voor het uitschakelen is natuurlijk geen optie omdat het licht altijd aanstaat op dat moment ;)

Iemand nog tips?

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • denuz
  • Registratie: Augustus 2006
  • Laatst online: 21:20
@Toppe

Ik gebruik;
Afbeeldingslocatie: https://tweakers.net/i/HIlIKgqL10sNJK09TubMpGuriDs=/800x/filters:strip_icc():strip_exif()/f/image/n0tSXK0SGSgJsGqpzncyv1vJ.jpg?f=fotoalbum_large
een true/false (helper) om input van de bewegingssensor door te geven. Indien deze op false staat, dan wordt er niets doorgegeven (geen on/off).
Indien deze op true staat dan natuurlijk wel.
In de switch zit enkel on/off.

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
denuz schreef op zaterdag 6 juni 2020 @ 16:12:
@Toppe

Ik gebruik;
[Afbeelding]
een true/false (helper) om input van de bewegingssensor door te geven. Indien deze op false staat, dan wordt er niets doorgegeven (geen on/off).
Indien deze op true staat dan natuurlijk wel.
In de switch zit enkel on/off.
Gebruik je zwave? Want ik heb mijn Zwave Bewegingsmelder zo geprogrammeerd dat hij na 6 seconde weer uitschakelt. Soms staan we wat langer op de trap en dan schakelt hij niet uit via het off commando van de melder.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • denuz
  • Registratie: Augustus 2006
  • Laatst online: 21:20
Toppe schreef op zaterdag 6 juni 2020 @ 16:33:
[...]


Gebruik je zwave? Want ik heb mijn Zwave Bewegingsmelder zo geprogrammeerd dat hij na 6 seconde weer uitschakelt. Soms staan we wat langer op de trap en dan schakelt hij niet uit via het off commando van de melder.
Nope, enkel zigbee.
Maar in je node schakelt de trapverlichting uit op basis van de bewegingssensor?

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
denuz schreef op zaterdag 6 juni 2020 @ 17:03:
[...]

Nope, enkel zigbee.
Maar in je node schakelt de trapverlichting uit op basis van de bewegingssensor?
Klopt, ik zie nu ook wat jij bedoeld door het aanmaken van een helper in HA. Ik wil het alleen proberen op te lossen zonder gebruik te maken van een helper. Ergens ga ik er vanuit dat een schakeling zoals deze wel zou moeten kunnen... Alleen hoe?

Edit:
Ik ben er uit. Je kan data opslaan via een functie, ik doe dit bij beide statussen:
code:
1
flow.set("lighton", 'true');


Vervolgens roep ik hem aan bij het uitschakelen:
code:
1
2
3
var lightStatus = flow.get("lighton");
msg.payload = lightStatus
return msg;


En dan met een switch kijken of het true of false is. Misschien niet de mooiste manier, maar werkt wel.
Afbeeldingslocatie: https://tweakers.net/i/sKUb1VxWsO3mejxZAoiKfq-aV00=/800x/filters:strip_exif()/f/image/SDQR0puQ6CFtVXEiKl1sugvK.png?f=fotoalbum_large

[ Voor 44% gewijzigd door Toppe op 06-06-2020 19:17 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • +1 Henk 'm!

  • pelt
  • Registratie: December 2006
  • Laatst online: 21:29
Toppe schreef op zaterdag 6 juni 2020 @ 14:33:
Ondertussen lekker aan de hobby met Node-Red en het werkt erg prettig moet ik toegeven.

Dit is mijn flow die ik gebruik om de verlichting van de trap te schakelen aan de hand van de hoeveelheid lux. Ook dit werkt lekker. Echter wil ik ook het licht kunnen aanzetten en dan gewoon de trap op en aflopen zonder dat hij aangaat. Dit lukt me (nog) niet.

Bij "Status verlichting" zou ik iets van een true/false resultaat willen 'opslaan' en dan bij "Schakel trap uit" eerst willen kijken of dit true is. Zo ja, dan niet uitschakelen.
[Afbeelding]

Het plaatsen van de "Status verlichting" voor het uitschakelen is natuurlijk geen optie omdat het licht altijd aanstaat op dat moment ;)

Iemand nog tips?
Wat probeer je precies te doen? Dat als je handmatig de lamp aan hebt gezet, deze niet automatisch (na geen beweging) uitgaat?

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
pelt schreef op zaterdag 6 juni 2020 @ 19:38:
[...]


Wat probeer je precies te doen? Dat als je handmatig de lamp aan hebt gezet, deze niet automatisch (na geen beweging) uitgaat?
Yes, maar ondertussen gelukt! :9

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • +1 Henk 'm!

  • Kaspers
  • Registratie: Juni 2004
  • Laatst online: 18-09 22:31
Toppe schreef op zaterdag 6 juni 2020 @ 19:00:
Edit:
Ik ben er uit. Je kan data opslaan via een functie, ik doe dit bij beide statussen:
code:
1
flow.set("lighton", 'true');


Vervolgens roep ik hem aan bij het uitschakelen:
code:
1
2
3
var lightStatus = flow.get("lighton");
msg.payload = lightStatus
return msg;
Ik vind het wel een mooie oplossing!
Mocht je het met een node willen oplossen, dan kun je de change node gebruiken:

Afbeeldingslocatie: https://tweakers.net/i/tfOYhwfrwmR6vK0JTj3EvIOx-wI=/800x/filters:strip_exif()/f/image/n5mubDZpCkvr5iHZoxVbqTqM.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
Kaspers schreef op zaterdag 6 juni 2020 @ 20:37:
[...]


Ik vind het wel een mooie oplossing!
Mocht je het met een node willen oplossen, dan kun je de change node gebruiken:

[Afbeelding]
Morgen maar eens naar kijken, dit staat natuurlijk iets netter :+

Zo, dit is ondertussen de flow die ik gebruik. Werkt erg prettig :)

Afbeeldingslocatie: https://tweakers.net/i/I3wbawk1blZJJE7TSiG34rO9xwo=/800x/filters:strip_exif()/f/image/6GAL03HWFM3qiakgspy3JDvl.png?f=fotoalbum_large

Edit:
Van "Lux naar helderheid" tot en met "Creeer template" nu in een subflow gestopt waardoor ik hem aanhouding kan hergebruiken :+

Ook maar meteen even een scriptje gemaakt die de airco aan zet als het verbruik de dag er voor minder is geweest dan 0.400kW. Nu nog alleen even kijken welke waarde nou exact past bij een dag 0 verbruik :+

Afbeeldingslocatie: https://tweakers.net/i/50lQAvSQIblq9P46p0ouArHEp8g=/800x/filters:strip_exif()/f/image/Fzj71ypLcne0lL5LtpMJ61jR.png?f=fotoalbum_large

[ Voor 55% gewijzigd door Toppe op 07-06-2020 14:15 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • Jovink538
  • Registratie: Juli 2003
  • Laatst online: 18-09 22:31
Voor mijn badkamer afzuiging wil ik een flow maken die iedere 10 minuten een berekening maken die het gemiddelde van de luchtvochtigheid berekend.
Maar ik krijg het niet voor elkaar.

De berekening is als volgt iedere 10 minuten gemiddelde_lv= gemiddelde lv * .9 + luchtvochtigheid * 0.1
Dit is voor mij de perfecte manier.

Ik deed het in home assistant op deze manier
code:
1
{{ (float(states.variable.gemiddelde.state) * 0.9 + float(states.sensor.thermometer_douche_2.state) * 0.1) | round(2) }}'


Maar nu krijg ik het dus niet voor elkaar. Ik moet ook zeggen dat ik geen code kan schrijven.
Ik heb nu het volgende.

code:
1
[{"id":"92f37412.e70bc8","type":"function","z":"e1c8b6b6.94701","name":"","func":"const entities = global.get('homeassistant').homeAssistant.states;\nconst humidity = entities[\"sensor.thermometer_douche_2\"].state;\n\n// msg.payload = Math.float(msg.payload) * 0.9 + Math.float(humidity) * 0.1) | round(2)\nmsg.payload = Math.round(2) msg.payload * 0.9 + humidity * 0.1\nreturn msg;","outputs":1,"noerr":4,"x":310,"y":260,"wires":[["697f40f.18f624"]]}]

Acties:
  • +2 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 19:00

Gizz

Dunder-Mifflin, Inc.

Afbeeldingslocatie: https://tweakers.net/i/1XIzVeKDnkJo-J8r5IQzshYt-nQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/xZjFd71HJpnYWq7ORWZi483C.png?f=user_large

@Toppe dit hele stuk kun je door een enkele node vervangen: de range node. Bijkomend voordeel is dat je omzetting van lux naar helderheid dan compleet vloeiend gaat, in plaats van de 5 stappen die je nu hebt :)

@Jovink538 Ik begrijp je code niet helemaal, maar ik ben dan ook zelf een beginner qua javascript.
Even je code los hier, zodat niemand het eerst in NR hoeft te importeren:
code:
1
2
3
4
5
const entities = global.get('homeassistant').homeAssistant.states;
const humidity = entities["sensor.thermometer_douche_2"].state;

msg.payload = Math.round(2) msg.payload * 0.9 + humidity * 0.1
return msg;

Opmerkingen/vragen van mijn kant:
  • Waarom gebruik je als type de const? Dit zijn waardes die steeds wijzigen, dus dan gebruik je gewoon var.
  • entities["sensor.thermometer_douche_2"].state; weet je zeker dat je hiermee direct in javascript een waarde op kan halen uit HA :? Volgens mij dien je die gewoon eerst op te halen met een HA-node en kun je de waarde vervolgens als flow.douche bewaren en gebruiken in je javascript.
  • Je gaat rekenen met msg.payload (die doe je maal 0.9), maar bevat msg.payload wel een waarde waarmee je aan de slag wil gaan? Je hebt nu niet je hele flow gepost, dus dat kan ik niet controleren.
  • Math.round(2) hiermee geef je aan dat het getal 2 moet worden afgerond naar een geheel getal. 2 dus :P
  • Je berekening klopt niet omdat er tussen 2 en msg.payload gewoon een spatie staat en geen bewerking (plus, min, delen, vermenigvuldigen).
  • Je berekening klopt verder niet, omdat je geen haakjes gebruikt. Als we even het getal twee vergeten staat er nu: de waarde van msg.payload maal 0,9. Bij de uitkomst van die berekening tellen we de waarde van humidity op. Uiteindelijk vermenigvuldigen we de uitkomst daarvan met 0,1. Dat is niet wat je wilt natuurlijk.
Dit lijkt mij logischer als berekening:
code:
1
Math.round((msg.payload * 0.9) + (humidity * 0.1));

Dan wordt eerst msg.payload * 0.9 gedaan. Daarbij wordt de uitkomst van humidity * 0.1 opgeteld en het geheel wordt afgerond naar een geheel getal. Als jij er dan voor zorgt dat msg.payload en humidity de juiste waarde bevatten heb je wat je wilt.

[ Voor 71% gewijzigd door Gizz op 11-06-2020 09:58 ]

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • rorie
  • Registratie: Maart 2007
  • Laatst online: 16-09 11:44
Als beginnende node red gebruiker probeer ik met een trigger mijn verlichting automatisch na 5 minuten geen beweging uitt te schakelen. Wat ik ook probeer, ik krijg de trigger niet ge reset, dus mijn lampen gaan gewoon uit na 5 minuten. Er zijn twee opties om hem te resetten, msg.reset is set of msg.payload equals ....
Wat moet ik nu precies naar deze trigger sturen om hem te resetten bij beweging zodatt er opnieuw 5 minuten gewacht word met het uitschakelen van de verlichting?

Acties:
  • 0 Henk 'm!

  • Kaspers
  • Registratie: Juni 2004
  • Laatst online: 18-09 22:31
rorie schreef op donderdag 11 juni 2020 @ 12:28:
Als beginnende node red gebruiker probeer ik met een trigger mijn verlichting automatisch na 5 minuten geen beweging uitt te schakelen. Wat ik ook probeer, ik krijg de trigger niet ge reset, dus mijn lampen gaan gewoon uit na 5 minuten. Er zijn twee opties om hem te resetten, msg.reset is set of msg.payload equals ....
Wat moet ik nu precies naar deze trigger sturen om hem te resetten bij beweging zodatt er opnieuw 5 minuten gewacht word met het uitschakelen van de verlichting?
Leuke vraag!
Maak je gebruik van een koppeling met home-assistant?
Hier een simpele flow die je probleem oplost:

Afbeeldingslocatie: https://tweakers.net/i/Sn-vU4biT-FYGkBASgQAakZC9KQ=/800x/filters:strip_exif()/f/image/PiBET8GgvaFw0rvBnqajfe0V.png?f=fotoalbum_large

node 1: geeft 'true' bij beweging en 'false' wanneer er geen beweging meer is. De meeste sensoren geven een 'false' na een minuut of 2.
node 2: bij true -> controleer of het licht uit is (dit mag je ook overslaan), zoja, schakel het licht aan.
node 2: bij false -> voeg evt nog een extra delay toe, controleer of er nog steeds geen beweging is en schakel vervolgens het ligt uit.
code:
code:
1
[{"id":"39ac2b6f.29965c","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"183dc889.14e707","type":"switch","z":"39ac2b6f.29965c","name":"switch true / false","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":350,"y":460,"wires":[["a5a331de.ddd6"],["afac6024.2b471"]]},{"id":"9a42f0e3.4896b","type":"api-current-state","z":"39ac2b6f.29965c","name":"presence off?","server":"3467b66e.566902","version":1,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","override_topic":false,"entity_id":"{{ presence_group }}","state_type":"habool","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":true,"x":680,"y":480,"wires":[[],["e7e93b68.b6486"]]},{"id":"afac6024.2b471","type":"delay","z":"39ac2b6f.29965c","name":"delay","pauseType":"delayv","timeout":"2","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":530,"y":480,"wires":[["9a42f0e3.4896b"]]},{"id":"eb5fd00.2e2c7b","type":"api-call-service","z":"39ac2b6f.29965c","name":"Turn on light","server":"3467b66e.566902","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"{{ light_id }}","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":900,"y":440,"wires":[[]]},{"id":"e7e93b68.b6486","type":"api-call-service","z":"39ac2b6f.29965c","name":"Turn off light","server":"3467b66e.566902","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"{{ light_id }}","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":900,"y":480,"wires":[[]]},{"id":"a5a331de.ddd6","type":"api-current-state","z":"39ac2b6f.29965c","name":"light is off","server":"3467b66e.566902","version":1,"outputs":2,"halt_if":"false","halt_if_type":"bool","halt_if_compare":"is","override_topic":false,"entity_id":"{{ light_id }}","state_type":"habool","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":true,"x":550,"y":440,"wires":[["eb5fd00.2e2c7b"],[]]},{"id":"e68e7202.56193","type":"server-state-changed","z":"39ac2b6f.29965c","name":"beweging true / false","server":"3467b66e.566902","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.voorkamer","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":140,"y":460,"wires":[["183dc889.14e707"]]},{"id":"3467b66e.566902","type":"server","z":"","name":"Home Assistant","legacy":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]


Ik heb bovenstaande flow verwerkt in een generiek component, genaamd 'light controller':

Afbeeldingslocatie: https://tweakers.net/i/jGkzmpur97iXFuUwXAX1A8PJtaA=/800x/filters:strip_exif()/f/image/QXkDbwmh1Bm6xFXfoU6IWSGd.png?f=fotoalbum_large

Met als inputvariabelen:
Afbeeldingslocatie: https://tweakers.net/i/5UechCbw2YkhqsaUGItED3JDTpQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/8RrZxHdltXxSgLttFmEYTPs3.png?f=user_large

Deze is ontzettend handig, om een aantal bewegingssensoren mee af te vangen:

Afbeeldingslocatie: https://tweakers.net/i/fbQYkw55qmd1TuT0ud4FDUAAqTg=/800x/filters:strip_exif()/f/image/ca1SD5aMES54eCAodvbS7poB.png?f=fotoalbum_large

Wat maakt 'm zo handig?
  • Je hoeft allen maar mee te geven:
    1. Wel of niet schakelen op basis van lichtintensiteit (is een aparte subflow)
    2. Eventuele extra delay, wanneer de delay van je sensor niet genoeg is
    3. De bewegingssensor (of group)
    4. Het te schakelen licht
  • Statusinfo wanneer de subflow is aangeroepen, dus geen extra debugging nodig bij problemen
Code:
code:
1
[{"id":"695eb103.49e1f","type":"subflow","name":"Determine if dark enough","info":"","category":"","in":[{"x":40,"y":100,"wires":[{"id":"92aaf773.7f48f8"}]}],"out":[{"x":840,"y":120,"wires":[{"id":"92aaf773.7f48f8","port":0},{"id":"c49ea579.0f7608","port":0}]},{"x":840,"y":240,"wires":[{"id":"c49ea579.0f7608","port":1}]}],"env":[],"status":{"x":1160,"y":140,"wires":[{"id":"ef770083.398a58","port":0},{"id":"ae9a3461.602f8","port":0},{"id":"1f55dbb4.4e2b6c","port":0}]}},{"id":"92aaf773.7f48f8","type":"api-current-state","z":"695eb103.49e1f","name":"Lights keukenlichten = on","server":"3467b66e.566902","version":1,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","override_topic":true,"entity_id":"light.keukenlichten","state_type":"habool","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":true,"x":240,"y":100,"wires":[["8cb2b525.c4f548","ef770083.398a58"],["c49ea579.0f7608"]]},{"id":"8cb2b525.c4f548","type":"debug","z":"695eb103.49e1f","name":"Darktest: Woonkamerkeuken on, then it's dark enough","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":600,"y":40,"wires":[]},{"id":"86fb562c.fcbe3","type":"inject","z":"695eb103.49e1f","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":40,"wires":[["92aaf773.7f48f8"]]},{"id":"fa63901d.52a118","type":"debug","z":"695eb103.49e1f","name":"Not dark enough, it's:","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":990,"y":300,"wires":[]},{"id":"f8f3e4d3.5acd1","type":"debug","z":"695eb103.49e1f","name":"Yes, it's dark, it's:","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":970,"y":60,"wires":[]},{"id":"c49ea579.0f7608","type":"api-current-state","z":"695eb103.49e1f","name":"light sensor < 20 lux","server":"3467b66e.566902","version":1,"outputs":2,"halt_if":"20","halt_if_type":"num","halt_if_compare":"lt","override_topic":false,"entity_id":"sensor.light_sensor","state_type":"num","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":true,"x":540,"y":160,"wires":[["f8f3e4d3.5acd1","ae9a3461.602f8"],["fa63901d.52a118","1f55dbb4.4e2b6c"]]},{"id":"ef770083.398a58","type":"template","z":"695eb103.49e1f","name":"set status playload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Yes, because keukenlichten are on.","output":"str","x":650,"y":80,"wires":[[]]},{"id":"ae9a3461.602f8","type":"template","z":"695eb103.49e1f","name":"set status playload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Yes, light sensor reports {{ payload }} lux.","output":"str","x":910,"y":160,"wires":[[]]},{"id":"1f55dbb4.4e2b6c","type":"template","z":"695eb103.49e1f","name":"set status playload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"No, light sensor reports {{ payload }} lux.","output":"str","x":910,"y":200,"wires":[[]]},{"id":"90d094a4.a05138","type":"subflow","name":"light controller","info":"Light controller\n\nGenerieke oplossing om lichten aan te sturen.\n\nInput: \n- msg.payload met true (aan) of false (uit), doorgegeven vanuit aanroepende flow\n- welk licht te schakelen (env var, via subflow properties)\n- welke presence group van toepassing is (bij delay) (env var, via subflow properties)\n- wel of niet rekening houden met lichtintensiteit woonkamer (env var, via subflow properties)\n\n\nOutput: geen\n\nSchakelt vervolgens licht aan of uit, rekening houdend met wel of geen (extra) delay, en wel of geen test of het donker genoeg is.","category":"","in":[{"x":40,"y":220,"wires":[{"id":"22fc151a.f9f8a2"}]}],"out":[],"env":[{"name":"only_when_dark","type":"bool","value":"true"},{"name":"milliseconds_extra_timeout","type":"num","value":"0"},{"name":"presence_group","type":"str","value":""},{"name":"light_id","type":"str","value":""}],"color":"#3FADB5","inputLabels":["dit is input"],"icon":"node-red/light.svg","status":{"x":1780,"y":260,"wires":[{"id":"ee8b9aec.bc2ee","port":0},{"id":"3e2f1759.7d32a","port":0},{"id":"d661175f.6577c","port":0},{"id":"8bf7e2ca.b5d3c","port":0},{"id":"bf3ab24d.222998","port":0},{"id":"44e1b50.562bbcc","port":0}]}},{"id":"1015c829.976668","type":"api-current-state","z":"90d094a4.a05138","name":"presence off?","server":"3467b66e.566902","version":1,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","override_topic":false,"entity_id":"{{ presence_group }}","state_type":"habool","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":true,"x":1220,"y":300,"wires":[[],["3800f6c7.119a8a"]]},{"id":"ce4a3102.f9c868","type":"delay","z":"90d094a4.a05138","name":"delay","pauseType":"delayv","timeout":"2","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":930,"y":300,"wires":[["1015c829.976668"]]},{"id":"91b29c29.40cb08","type":"switch","z":"90d094a4.a05138","name":"payload","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"},{"t":"else"}],"checkall":"false","repair":false,"outputs":3,"x":340,"y":220,"wires":[["b83028c4.edaee8"],["baab00c1.02c99","ce4a3102.f9c868"],["44e1b50.562bbcc"]]},{"id":"22fc151a.f9f8a2","type":"change","z":"90d094a4.a05138","name":"set variables","rules":[{"t":"set","p":"only_when_dark","pt":"msg","to":"only_when_dark","tot":"env"},{"t":"set","p":"delay","pt":"msg","to":"milliseconds_extra_timeout","tot":"env"},{"t":"set","p":"presence_group","pt":"msg","to":"presence_group","tot":"env"},{"t":"set","p":"light_id","pt":"msg","to":"light_id","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":170,"y":220,"wires":[["91b29c29.40cb08","172b39e1.9fbe36"]]},{"id":"9184912c.59e618","type":"debug","z":"90d094a4.a05138","name":"Turn on:","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload.data.entity_id","targetType":"msg","x":1590,"y":140,"wires":[]},{"id":"ba3b76af.e6193","type":"debug","z":"90d094a4.a05138","name":"No presence anymore. Turn off:","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload.data.entity_id","targetType":"msg","x":1660,"y":340,"wires":[]},{"id":"9a3f1f42.0e4c58","type":"api-call-service","z":"90d094a4.a05138","name":"Turn on light","server":"3467b66e.566902","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"{{ light_id }}","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1410,"y":100,"wires":[["9184912c.59e618","3e2f1759.7d32a"]]},{"id":"3800f6c7.119a8a","type":"api-call-service","z":"90d094a4.a05138","name":"Turn off light","server":"3467b66e.566902","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"{{ light_id }}","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1420,"y":300,"wires":[["ba3b76af.e6193","ee8b9aec.bc2ee"]]},{"id":"5f86dd27.b47884","type":"subflow:695eb103.49e1f","z":"90d094a4.a05138","name":"","env":[],"x":1160,"y":140,"wires":[["9a3f1f42.0e4c58"],["8bf7e2ca.b5d3c"]]},{"id":"4f9c634f.04db94","type":"switch","z":"90d094a4.a05138","name":"only when dark?","property":"only_when_dark","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":890,"y":180,"wires":[["5f86dd27.b47884"],["9a3f1f42.0e4c58"]]},{"id":"ee8b9aec.bc2ee","type":"template","z":"90d094a4.a05138","name":"fill payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Turned off {{ payload.data.entity_id }}.","output":"str","x":1590,"y":300,"wires":[[]]},{"id":"3e2f1759.7d32a","type":"template","z":"90d094a4.a05138","name":"fill payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Turned on {{ payload.data.entity_id }}.","output":"str","x":1590,"y":100,"wires":[[]]},{"id":"172b39e1.9fbe36","type":"debug","z":"90d094a4.a05138","name":"Light controller called for presence_group:","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"presence_group","targetType":"msg","x":430,"y":140,"wires":[]},{"id":"9b771c28.177f7","type":"debug","z":"90d094a4.a05138","name":"Only when dark?","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"only_when_dark","targetType":"msg","x":900,"y":140,"wires":[]},{"id":"baab00c1.02c99","type":"switch","z":"90d094a4.a05138","name":"do we have a delay?","property":"delay","propertyType":"msg","rules":[{"t":"gt","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":980,"y":380,"wires":[["47860048.8285b8"]]},{"id":"d82eb66c.c1fa18","type":"debug","z":"90d094a4.a05138","name":"Delay turning off {{ light_id }} for mins:","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"delay","targetType":"msg","x":1690,"y":420,"wires":[]},{"id":"b83028c4.edaee8","type":"api-current-state","z":"90d094a4.a05138","name":"light is off","server":"3467b66e.566902","version":1,"outputs":2,"halt_if":"false","halt_if_type":"bool","halt_if_compare":"is","override_topic":false,"entity_id":"{{ light_id }}","state_type":"habool","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":true,"x":510,"y":200,"wires":[["4f9c634f.04db94","9b771c28.177f7"],["99cc104.006c87","bf3ab24d.222998"]]},{"id":"99cc104.006c87","type":"debug","z":"90d094a4.a05138","name":"Halt. Light is already on:","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"light_id","targetType":"msg","x":920,"y":220,"wires":[]},{"id":"d661175f.6577c","type":"template","z":"90d094a4.a05138","name":"fill payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Delaying turning off {{ light_id }} for {{ delay }} minutes.","output":"str","x":1590,"y":380,"wires":[[]]},{"id":"47860048.8285b8","type":"change","z":"90d094a4.a05138","name":"milliseconds to minutes","rules":[{"t":"set","p":"delay","pt":"msg","to":"delay / 60000 ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":380,"wires":[["d661175f.6577c","d82eb66c.c1fa18"]]},{"id":"8bf7e2ca.b5d3c","type":"template","z":"90d094a4.a05138","name":"fill payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Halt. Not dark.","output":"str","x":1590,"y":180,"wires":[[]]},{"id":"bf3ab24d.222998","type":"template","z":"90d094a4.a05138","name":"fill payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Halt. {{ light_id }} is already on.","output":"str","x":1590,"y":220,"wires":[[]]},{"id":"44e1b50.562bbcc","type":"template","z":"90d094a4.a05138","name":"fill payload","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"No boolean provided for msg.payload. Instead, received: {{ payload }}.","output":"str","x":1590,"y":260,"wires":[[]]},{"id":"3467b66e.566902","type":"server","z":"","name":"Home Assistant","legacy":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]


Misschien heeft iemand er wat aan!

Mocht iemand ook geinteresseerd zijn in de 'Determine if dark enough' subflow, laat 't weten, dan post ik die hier ook.

Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:21
@Gizz zal er vanmiddag eens naar kijken, als het eenvoudiger kan dan vooral doen :+

[ Voor 81% gewijzigd door Toppe op 11-06-2020 13:04 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 19:00

Gizz

Dunder-Mifflin, Inc.

@rorie Dat kun je simpel voor elkaar krijgen met de trigger node. Zie ook: Gizz in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)" Daar laat ik dat letterlijk zien, al is mijn vertraging 30 seconden i.p.v. 5 minuten :)

[ Voor 44% gewijzigd door Gizz op 11-06-2020 13:06 ]

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX

Pagina: 1 ... 12 ... 32 Laatste