Acties:
  • 0 Henk 'm!

  • KvNwPPr
  • Registratie: Februari 2014
  • Laatst online: 10-06 14:19
Megalomania schreef op zondag 6 februari 2022 @ 08:26:
@KvNwPPr Hoe ik het nu heb is nu behoorlijk langzaam. Kan je mij opweg helpen hoe het een mqtt out in te stellen?

Ik heb bij de mosquito broker configuration het wachtwoord en username opgezocht voor de security top bij server. Vul ik de rest goed in?

[Afbeelding][Afbeelding]
Ik denk niet dat de snelheid ligt aan je MQTT out settings. Bij mij reageert het instant. Hier mijn settings:Afbeeldingslocatie: https://tweakers.net/i/y4ChLQGqs_DyQlE_XIY1zzhAgAg=/x800/filters:strip_exif()/f/image/ea6XQTF2biHzAtIo6SUK2pzM.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Gewoon om wat inspiratie op te doen (ik doe t nu met 2 inject nodes), hoe lossen jullie dit op?

- Trapverlichting (op beweging, los van HA) werkt met een controller
- Elke dag als het licht genoeg is (zeg 09:00 uur, geen luxwaarde aan de koppelen op dit moment) verlichting UIT
- Elke dag als het donker genoeg is (zeg 17:00, idem hierboven) verlichting weer AAN

Nu dus: inject, daily 17:00 --> Call service, Entity ON.

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op maandag 7 februari 2022 @ 18:00:
Gewoon om wat inspiratie op te doen (ik doe t nu met 2 inject nodes), hoe lossen jullie dit op?

- Trapverlichting (op beweging, los van HA) werkt met een controller
- Elke dag als het licht genoeg is (zeg 09:00 uur, geen luxwaarde aan de koppelen op dit moment) verlichting UIT
- Elke dag als het donker genoeg is (zeg 17:00, idem hierboven) verlichting weer AAN

Nu dus: inject, daily 17:00 --> Call service, Entity ON.
Bij mij gaat het licht boven de trap altijd aan omdat het er meestal vrij donker is. Moet nog zien hoe het van de zomer gaat zijn.

In jouw geval zou je het op tijd kunnen doen met een inject node zoals je aangeeft, maar ik denk dat het misschien mooier is om de stand van de zon er in mee te nemen. Op een grauwe winterdag wil je misschien dat het licht al eerder dan 17.00 aan gaat, en hoogzomer misschien pas om 21.00 of nog later.

Ik heb zelf de "sun events" node wel werkend, alleen kan deze geen initiele waarde uitspugen, dus je moet altijd wachten totdat de stand van de zon weer wijzigt voor je een trigger krijgt. Ga dus op zoek naar een andere node hiervoor.

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op maandag 7 februari 2022 @ 20:42:
[...]


Bij mij gaat het licht boven de trap altijd aan omdat het er meestal vrij donker is. Moet nog zien hoe het van de zomer gaat zijn.

In jouw geval zou je het op tijd kunnen doen met een inject node zoals je aangeeft, maar ik denk dat het misschien mooier is om de stand van de zon er in mee te nemen. Op een grauwe winterdag wil je misschien dat het licht al eerder dan 17.00 aan gaat, en hoogzomer misschien pas om 21.00 of nog later.

Ik heb zelf de "sun events" node wel werkend, alleen kan deze geen initiele waarde uitspugen, dus je moet altijd wachten totdat de stand van de zon weer wijzigt voor je een trigger krijgt. Ga dus op zoek naar een andere node hiervoor.
Heb je wel n goed punt.. k heb nu de cronplus node n kans te geven. die kan ook op sunevents triggeren.. maar moet nog ff testen of dat goed genoeg werkt met 2 events tegelijk.


Ok dit werkt prima :) Dat is nice, met een delay node kun je nog wat extra sturen op die tijd.. Nu t volgende.


Ik stuur dus puur de gledopto gl-c-009 controller aan. Die kent wel brightness maar werkt in principe als AAN/UIT. Is de controller UIT (slaapstand) dan reageren de motionsensoren (bij de ledstrip horende) langzaam. Zet ik de controller continu aan (andere kant van de sensoren, die anders als hotelschakeling reageren) dan is het bij 100% brightness echt AAN of UIT.. zet ik de brightness echter naar 20% (of beneden 60% geloof ik zelfs) dan is UIT....bijna uit... dus wat lekstroom.

Nu komt t : Ik kan de controller dus aan en uit zetten en brightness meegeven, maar heb geen controle over de bewegingssensoren.. Dan is er toch geen manier om te zeggen: Beweging? AAN Brightness 40%. Geen beweging? Brightness 100% / UIT .

[ Voor 30% gewijzigd door Koepert op 08-02-2022 11:42 ]


Acties:
  • 0 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
musicpixel schreef op maandag 7 februari 2022 @ 20:42:
[...]


Bij mij gaat het licht boven de trap altijd aan omdat het er meestal vrij donker is. Moet nog zien hoe het van de zomer gaat zijn.

In jouw geval zou je het op tijd kunnen doen met een inject node zoals je aangeeft, maar ik denk dat het misschien mooier is om de stand van de zon er in mee te nemen. Op een grauwe winterdag wil je misschien dat het licht al eerder dan 17.00 aan gaat, en hoogzomer misschien pas om 21.00 of nog later.

Ik heb zelf de "sun events" node wel werkend, alleen kan deze geen initiele waarde uitspugen, dus je moet altijd wachten totdat de stand van de zon weer wijzigt voor je een trigger krijgt. Ga dus op zoek naar een andere node hiervoor.
Ik gebruik de nodes van https://flows.nodered.org/node/node-red-contrib-sun-position
voor lampen schakelen gebruik ik de clock timer daarvan en de within-time node.

Ik begrijp je laatste alinea niet helemaal, wat wil je het liefst bereiken?

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op maandag 7 februari 2022 @ 21:12:

Ik stuur dus puur de gledopto gl-c-009 controller aan. Die kent wel brightness maar werkt in principe als AAN/UIT. Is de controller UIT (slaapstand) dan reageren de motionsensoren (bij de ledstrip horende) langzaam. Zet ik de controller continu aan (andere kant van de sensoren, die anders als hotelschakeling reageren) dan is het bij 100% brightness echt AAN of UIT.. zet ik de brightness echter naar 20% (of beneden 60% geloof ik zelfs) dan is UIT....bijna uit... dus wat lekstroom.

Nu komt t : Ik kan de controller dus aan en uit zetten en brightness meegeven, maar heb geen controle over de bewegingssensoren.. Dan is er toch geen manier om te zeggen: Beweging? AAN Brightness 40%. Geen beweging? Brightness 100% / UIT .
Dit is wat moeilijk te volgen, maar voor zover ik het begrijp werkt je motion sensor (die hoort bij de ledstrip) niet goed als je de ledstrip volledig uit zet met de controller?

Ik denk dat je even een wat duidelijker beeld moet schetsen van je situatie. ;)

Feel free to Buy me a coffee


Acties:
  • +1 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
IKEA Symfonisk afstandsbediening
Hoi allemaal,
Ik gebruik al een tijdje Mopidy en Snapcast met een paar speakers voor mult-room audio.

Toen ik een tijd geleden bij de IKEA die Symfonisk draaischijfjes zag liggen leek het me gelijk wel heel mooi als ik die zou kunnen gebruiken om het volume van de speakers te kunnen regelen :Y
Ze worden ondersteund door Zigbee2Mqtt, dus eitje zou je denken.
Maar dat is niet helemaal waar, de afstandsbediening stuurt bij het roteren niet constant signalen maar alleen bij het starten en een keer wanneer het roteren stopt. In de tussentijd moet je dus zelf iets om bijvoorbeeld constant het volume te laten oplopen.

In eerste instantie had ik een loop geprogrammeerd om vanuit de trigger node iedere 100 ms het huidige volume op te vragen en dit een beetje te verhogen of verlagen. Dit werkte een beetje, het gebeurde echter vaak dat het nieuwe volume nog niet verwerkt was bij het opvragen in de volgende herhaling.
Beter is dus om eerst het volume op te vragen en van daaruit continue te gaan verhogen of verlagen. Maar ik kwam er niet helemaal uit om het netjes met standaard nodes op te lossen. Ik wilde het makkelijk kunnen hergebruiken en bijvoorbeeld niet voor iedere speaker handmatig allerlei variabelen maken.

Uiteindelijk heb ik een functie-node geprogrammeerd die:
  • start met een aantal variabelen (huidige waarde, min, max, +/- verhoging%, delay)
  • onderscheid maakt op basis van msg.topic
  • intern een interval functie opzet die de waarde steeds ophoogt en,
  • geregeld de nieuwe waarde uitspuugt
  • stopt na ontvangen van msg.reset
Een andere functie-node handelt de berichten van de Symfonisk af, en splitst het op:
  • draaiacties >> bestuur volume (snapcast)
  • drukacties >> play/pause; volgende track; vorige track (Mopidy)
gebruikte set-up:
  • Node-RED
  • Home Assistant
  • Zigbee2MQTT (via HA of MQTT-in)
  • Mopidy en Snapcast als HA media_player
Afbeeldingslocatie: https://tweakers.net/i/_PA7-7EX7tCdlE3kzLSbrag9t-o=/800x/filters:strip_exif()/f/image/scKSbbJrU0hE2fMb3jfIdIDt.png?f=fotoalbum_large

Hieronder de complete flow voor 3 setjes, wie weet heeft iemand er wat aan. Opbouwende kritiek is altijd welkom ;)
github gist link (code was blijkbaar te veel om hier te posten)

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op dinsdag 8 februari 2022 @ 23:09:
[...]


Dit is wat moeilijk te volgen, maar voor zover ik het begrijp werkt je motion sensor (die hoort bij de ledstrip) niet goed als je de ledstrip volledig uit zet met de controller?

Ik denk dat je even een wat duidelijker beeld moet schetsen van je situatie. ;)
Excuus ik zie dat ik hier niet op gereageerd heb.

Ik heb deze ledstrip: https://www.ledstripkonin...m-wit-complete-set-50-cm/

Die controller is dus die gledopto die ik via Deconz in Home Assistant heb. Daar kan ik er 3 dingen mee.
1) Aan
2) Uit
3) Brightness

De reactie van de bewegingsensor ed heb ik geen invloed op.

100% Brightness = vrij fel. Dus dacht ik --> 40% is mooi.. Is het AAN ook..Maar als de sensoren geen beweging registeren voor 30sec gaan de leds uit. Maar bij een brightness van 40% bij AAN gaan deze lekken (en dus niet 100% UIT) als ze met de sensoren uit gaan (Controller blijft AAN, zit nu VOOR ipv ACHTER de sensoren).

Dus wat ik eigenlijk zou willen --> Vlak voor de sensoren de lamp UIT zetten, gaat de brightness naar 100% zodat ze daadwerkelijk UIT gaan. Als ze dan AAN gaan, zet ik ze op 40%..

Maar dat lijkt dus niet te kunnen omdat ik alleen de controller aan/uit kan zetten en brightness op dat moment mee kan geven.

Helpt die info?

Acties:
  • +1 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op vrijdag 11 februari 2022 @ 14:20:
[...]


Excuus ik zie dat ik hier niet op gereageerd heb.

Ik heb deze ledstrip: https://www.ledstripkonin...m-wit-complete-set-50-cm/

Die controller is dus die gledopto die ik via Deconz in Home Assistant heb. Daar kan ik er 3 dingen mee.
1) Aan
2) Uit
3) Brightness

De reactie van de bewegingsensor ed heb ik geen invloed op.

100% Brightness = vrij fel. Dus dacht ik --> 40% is mooi.. Is het AAN ook..Maar als de sensoren geen beweging registeren voor 30sec gaan de leds uit. Maar bij een brightness van 40% bij AAN gaan deze lekken (en dus niet 100% UIT) als ze met de sensoren uit gaan (Controller blijft AAN, zit nu VOOR ipv ACHTER de sensoren).

Dus wat ik eigenlijk zou willen --> Vlak voor de sensoren de lamp UIT zetten, gaat de brightness naar 100% zodat ze daadwerkelijk UIT gaan. Als ze dan AAN gaan, zet ik ze op 40%..

Maar dat lijkt dus niet te kunnen omdat ik alleen de controller aan/uit kan zetten en brightness op dat moment mee kan geven.

Helpt die info?
Okee, ik heb naar die ledstrip en bewegingssensors gekeken die je hebt en dan met name de handleiding over de sensors.

Bij stap 6 staat een mooie tekening, die ik even heb overgenomen, met wat extra toevoegingen van mijn kant:

Afbeeldingslocatie: https://tweakers.net/i/6v-VTm5MyX2DISm6VBYVp4D9-_8=/800x/filters:strip_icc():strip_exif()/f/image/9UJ6lzoyi99UouFeoAft9rML.jpg?f=fotoalbum_large

Zoals ik je verhaal begrijp heb je je controller niet aangesloten zoals de blauwe pijlen in de tekening aangeven, maar zit ie nu op positie C. Waarschijnlijk heb je dat gedaan zodat de controller altijd stroom heeft omdat anders je zigbee aansturing niet werkt.

Echter, door dat te doen, en door de controller te laten dimmen tot 40%, staat op het gedeelte in het blauwe kader ook maar 40% van de stroom. Hoewel de sensors wel werken, denk ik dat er een stukje electronica in de kabels en/of het boxje van elke sensor zit dat hier niet goed mee om kan gaan. Ik ben geen electronica specialist dus pin me hier niet op vast ;)
Ik kwam nog wel de volgende pagina tegen die misschien wat duidelijkheid geeft:
https://smartledenverlichting.nl/led-lamp-blijft-nagloeien/

Je kunt het eenvoudig testen door het gedeelte van de bewegingssensors er helemaal tussenuit te halen en dan te kijken of alles met je zigbee driver wel goed werkt. Zo ja, dan zit het probleem in het blauwe kader.

Ik denk dat, als je niet wilt gaan knutselen met draden en electronica, je twee opties hebt:

1. Haal het gedeelte van de bewegingsmelders er tussenuit en plaats een aparte (zigbee) bewegingssensor (ik heb er zelf eentje met gekko tape vastgemaakt aan het plafond boven de trap en dat werkt goed). Je kunt dan de zigbee driver blijven gebruiken en verschillende dimstanden gebruiken, bijvoorbeeld 's nachts op 2% om niet meteen verblind te worden en in de avond op 40%.

2. Een normale driver met dimmer gebruiken op de plek van de blauwe pijlen en deze instellen op ca 40%. Hij staat dan altijd op de zelfde lichtsterkte. Daarnaast kun je een (zigbee) slimme stekker gebruiken op plaats S en zo zorgen dat alles overdag van de stroom is en in de avond weer op de stroom gaat.

Maar goed, ik ben geen expert, dus als iemand anders een idee heeft...

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Thx

Dat is precies de situatie met exact de reden waarom ik t gedaan heb --> Op de juiste plek reageerde de trap erg langzaam omdat de controller eerst 'aan' moest voordat er wat gebeurde.. Had ook al verwacht dat dat de reden zou zijn.. Jammer maar logisch. Huidige sensoren zitten in de trap verwerkt dus ook zo zonde om die er weer uit te halen.. Ik overdenk het nog wel ff.. Heb wel n slimme stekker en ook 2 motion sensoren liggen als t moet..

Acties:
  • +1 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
@Koepert Ik moest opeens denken aan de Shelly. Het wordt dan wel al wat geknutsel, maar misschien kun je dan toch je ingebouwde sensoren gebruiken, door ze elk aan te sluiten op een Shelly 1.
Nu heb ik er zelf geen ervaring mee, maar je zou eens kunnen vragen in het Shelly topic of zij mogelijkheden zien en hoe dat dan zou moeten.

Feel free to Buy me a coffee


Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:23
BounceCloud schreef op woensdag 30 oktober 2019 @ 23:30:
Ik liep vanmorgen voor het eerst sinds tijden weer eens tegen een bekend First World Problem aan: het leed dat autoruit krabben heet. :P Een waar FWP als je naar je werk wilt en eerst nog minuten in die kou staat te krabben.
[...]
Toen ik gisteravond een strooiauto door de straat zag rijden moest ik ineens weer aan deze post denken. Vanochtend was de auto inderdaad bevroren dus hun voorspelling was goed. Ben heel benieuwd of je dit nog (naar tevredenheid) in gebruik hebt :) ?

Acties:
  • 0 Henk 'm!

  • OcGuru
  • Registratie: Juni 2004
  • Laatst online: 22:18

OcGuru

Giulietta Qv

Ik zit het met volgende probleem. Ik heb een prolight dimmer welke elke keer een waarde stuurt als je op de + of - knop drukt.

13 is het laagst 255 is het hoogste.

Hoe kan ik nou deze waarde filteren in mijn state node? Dat de node actief word als de waarde 13 is bv.

Afbeeldingslocatie: https://tweakers.net/i/4Ofo2WsvebuiKojss0Tm_LvvdGY=/234x176/filters:strip_exif()/f/image/kr5zeLMpQ7zZjvTjRocoteut.png?f=fotoalbum_medium

Alvast bedankt voor de input!

Bl44t


Acties:
  • +1 Henk 'm!
@OcGuru msg.data.attributes.action_level = [number] 13

Acties:
  • +1 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
OcGuru schreef op zaterdag 12 februari 2022 @ 22:17:
Ik zit het met volgende probleem. Ik heb een prolight dimmer welke elke keer een waarde stuurt als je op de + of - knop drukt.

13 is het laagst 255 is het hoogste.

Hoe kan ik nou deze waarde filteren in mijn state node? Dat de node actief word als de waarde 13 is bv.
Als je het onhandig vind dat 13 de laagste waarde is, kun je de "range"-node gebruiken om de range van 13-255 te mappen op 0-1 of 0-100 of net wat je handig vind/nodig hebt.

Acties:
  • 0 Henk 'm!

  • OcGuru
  • Registratie: Juni 2004
  • Laatst online: 22:18

OcGuru

Giulietta Qv

lolgast schreef op zaterdag 12 februari 2022 @ 22:25:
@OcGuru msg.data.attributes.action_level = [number] 13
Bedankt voor je antwoord. Maar misschien een domme vraag maar waar moet ik deze regel invullen in deze node?

Afbeeldingslocatie: https://tweakers.net/i/w9Ke82XCXbybuOn3rRdGtZeGds8=/234x176/filters:strip_exif()/f/image/JeOcNRff5wX0XDdiefa37xuL.png?f=fotoalbum_medium

Blijkbaar niet op deze regel :P

Bl44t


Acties:
  • +1 Henk 'm!
@OcGuru Nee dat gaat niet werken nee :+

Persoonlijk gebruik ik liever de switch node, dan kun je meteen andere waardes afsplitsen die je ook wilt gebruiken
Afbeeldingslocatie: https://images.lolgast.nl/uploads/big/11ae2b90ff3f920c6618939baab2bfef.png

Acties:
  • 0 Henk 'm!

  • OcGuru
  • Registratie: Juni 2004
  • Laatst online: 22:18

OcGuru

Giulietta Qv

lolgast schreef op zondag 13 februari 2022 @ 20:31:
@OcGuru Nee dat gaat niet werken nee :+

Persoonlijk gebruik ik liever de switch node, dan kun je meteen andere waardes afsplitsen die je ook wilt gebruiken
[Afbeelding]
Oke, weer een stapje verder dus. :P
Maar het werkt nog steeds niet naar behoren.

Heb dus nu een state node en zodra die actief word spuugt die dus de data(payload)naar de switch node. Alleen deze doet er niks mee. De verlichting word niet getoggled. Maar volgens de debug node krijgt hij wel de data.

Afbeeldingslocatie: https://tweakers.net/i/Qj2FCdL-VRWnVX7AGjNRtkhbktg=/234x176/filters:strip_exif()/f/image/gALtI3MT9kuwUL1lgc2CsRDM.png?f=fotoalbum_medium

Bl44t


Acties:
  • +1 Henk 'm!

  • denuz
  • Registratie: Augustus 2006
  • Laatst online: 00:23
OcGuru schreef op zondag 13 februari 2022 @ 21:30:
[...]


Oke, weer een stapje verder dus. :P
Maar het werkt nog steeds niet naar behoren.

Heb dus nu een state node en zodra die actief word spuugt die dus de data(payload)naar de switch node. Alleen deze doet er niks mee. De verlichting word niet getoggled. Maar volgens de debug node krijgt hij wel de data.

[Afbeelding]
De property in je switch node staat niet goed. Als ik naar je debug kijk moet dit zijn;
msg.data.new_state.attributes.action_level. en let op je MSG. is al ingevuld, deze vul je dus niet nogmaals in. Je vult dus enkel in "data.new_state.attributes.action_level". In je debug node kun je ook het "path" vinden naar je state.
Afbeeldingslocatie: https://tweakers.net/i/1i630a3gljbUrWiGkAnyY1k-srY=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/Bx0u9oXkydvnJErFBpdGddOz.png?f=user_large

Acties:
  • 0 Henk 'm!

  • OcGuru
  • Registratie: Juni 2004
  • Laatst online: 22:18

OcGuru

Giulietta Qv

denuz schreef op zondag 13 februari 2022 @ 21:56:
[...]


De property in je switch node staat niet goed. Als ik naar je debug kijk moet dit zijn;
msg.data.new_state.attributes.action_level. en let op je MSG. is al ingevuld, deze vul je dus niet nogmaals in. Je vult dus enkel in "data.new_state.attributes.action_level". In je debug node kun je ook het "path" vinden naar je state.
[Afbeelding]
Thanks. Hij doet het nu :P Begin het nu langzamerhand wel te snappen.

Probleem is natuurlijk dat node red zo'n beetje alles slikt wat je invoert. Zou mooi zijn als er gewoon een foutmelding aangeeft als je iets invoert wat niet te vinden is of niet mogelijk is.

Maar dan zou het ook wel heel makkelijk worden :o :P

Bl44t


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
OK k ben er weer :)

Met de shelly heb ik mijn trap nu werkend (en beheersbaar) zoals ik wil. In Node-Red heb ik nu een flow met 2 minimale nodes:
  • State Change node entity shelly = off.
  • Is dit true --> call service node entity gledopto controller = light on
  • Is dit false --> call service node entity gledopto controller = light off
Nu wil ik eigenlijk dat de trap alleen tussen [sunset] en [sunrise] aan gaat op 40% brightness en tussen 01:00 en 04:00 zelfs op 10% brightness. Nu dacht ik dat te doen door 2 Time Range nodes achter elkaar te zetten --> sunset + sunrise met offsets en achter sunset dan weer een van 01:00 tot 04:00.. Hierachter dan de within --> Call service node On 10%. Outside --> Call service node On 40%.. maar tegelijktijdig vraag ik me af of het zo kan en of er niet een betere optie is?

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op vrijdag 18 februari 2022 @ 11:39:
OK k ben er weer :)

Met de shelly heb ik mijn trap nu werkend (en beheersbaar) zoals ik wil. In Node-Red heb ik nu een flow met 2 minimale nodes:
  • State Change node entity shelly = off.
  • Is dit true --> call service node entity gledopto controller = light on
  • Is dit false --> call service node entity gledopto controller = light off
Nu wil ik eigenlijk dat de trap alleen tussen [sunset] en [sunrise] aan gaat op 40% brightness en tussen 01:00 en 04:00 zelfs op 10% brightness. Nu dacht ik dat te doen door 2 Time Range nodes achter elkaar te zetten --> sunset + sunrise met offsets en achter sunset dan weer een van 01:00 tot 04:00.. Hierachter dan de within --> Call service node On 10%. Outside --> Call service node On 40%.. maar tegelijktijdig vraag ik me af of het zo kan en of er niet een betere optie is?
Je kunt inderdaad met tijden werken zoals je aangeeft (eerst sunset/sunrise en dan daarachter een time range), maar wat ik zelf heb gedaan is een "sleep mode" geintroduceerd. Ik heb een knop naast mijn bed en als ik ga slapen druk ik daarop en wordt een input_boolean "sleep mode" op true gezet. Ook worden dan alle lampen in huis uitgeschakeld en de lamp bij het bed wordt tot minimum gedimd en gaat dan na 1 minuut ook uit.

Als ik dan 's nachts mijn bed uit ga, gaan alle lampen (die op beweging werken) minder fel aan omdat sleep mode aan staat.

's Ochtends gaat het huis automatisch uit sleep mode, of ik kan dat met de knop handmatig doen (maar dat vergat ik steeds)

Feel free to Buy me a coffee


Acties:
  • +1 Henk 'm!

  • BounceCloud
  • Registratie: Juni 2007
  • Nu online
ThinkPad schreef op zaterdag 12 februari 2022 @ 11:48:
[...]

Toen ik gisteravond een strooiauto door de straat zag rijden moest ik ineens weer aan deze post denken. Vanochtend was de auto inderdaad bevroren dus hun voorspelling was goed. Ben heel benieuwd of je dit nog (naar tevredenheid) in gebruik hebt :) ?
Beetje late reactie: sorry! Ik heb de flow inmiddels niet meer in gebruik omdat ik voortaan fiets in plaats van met de auto ga. :+ Heb nog wel een EV, maar die gebruik ik niet op vaste momenten, dus zo'n flow is niet meer nuttig.

In het verleden heeft de flow prima gewerkt. Heb hem nog wel iets getweakt, maar door de bank genomen klopte het goed. :D

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op vrijdag 18 februari 2022 @ 15:32:
[...]


Je kunt inderdaad met tijden werken zoals je aangeeft (eerst sunset/sunrise en dan daarachter een time range), maar wat ik zelf heb gedaan is een "sleep mode" geintroduceerd. Ik heb een knop naast mijn bed en als ik ga slapen druk ik daarop en wordt een input_boolean "sleep mode" op true gezet. Ook worden dan alle lampen in huis uitgeschakeld en de lamp bij het bed wordt tot minimum gedimd en gaat dan na 1 minuut ook uit.

Als ik dan 's nachts mijn bed uit ga, gaan alle lampen (die op beweging werken) minder fel aan omdat sleep mode aan staat.

's Ochtends gaat het huis automatisch uit sleep mode, of ik kan dat met de knop handmatig doen (maar dat vergat ik steeds)
Hoe ziet dat er dan als flow uit? Een events state change node die via een current state de boolean checkt en dan op 40 %of 10% aan zet met 2 call-services?? (in mijn geval)..

Want dit valt dan wellicht te combineren met de automation die ik al heb: iPhone na 22:00 charging? --> Alle lampen uit.. Als ik daar dan " boolean aan" aan toevoeg, ben ik er :)

[ Voor 8% gewijzigd door Koepert op 18-02-2022 15:44 ]


Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op vrijdag 18 februari 2022 @ 15:43:
[...]


Hoe ziet dat er dan als flow uit? Een events state change node die via een current state de boolean checkt en dan op 40 %of 10% aan zet met 2 call-services?? (in mijn geval)..

Want dit valt dan wellicht te combineren met de automation die ik al heb: iPhone na 22:00 charging? --> Alle lampen uit.. Als ik daar dan " boolean aan" aan toevoeg, ben ik er :)
Bij het aanzetten van "sleep mode" gebruik ik gewoon een call-service node om de input_boolean aan te zetten.

Bij het aanzetten van het licht check ik gewoon met een current-state node diezelfde input_boolean. Als AAN doe dan 2% brightness en anders 40% (bijvoorbeeld, net wat je wilt natuurlijk).

Het gaat er uiteindelijk om dat je een trigger hebt waardoor je huis weet dat je gaat slapen. Of dat je iPhone op de lader is, of iets anders, is aan jou natuurlijk.

En als je dus slaapt reageert je huis anders dan wanneer je wakker bent. Vandaar dat ik het "sleep mode" heb genoemd, maar "sleeping" had ook gekund ;) .

Ik weet trouwens niet of je wel eens laat opblijft waarbij je iPhone bijna leeg is en je 'm dan aan de lader wilt leggen maar dus nog niet gaat slapen? Dan gaat het natuurlijk de soep in want dat zorgt er voor dat alle lichten uit gaan ;)

Zo niet, dan kun je je huidige iPhone laden na 22 uur trigger gebruiken om "sleep mode" aan te zetten.

Dan zou ik vervolgens wel alle automations die je nu aan je iPhone trigger hebt hangen, koppelen aan de "sleep mode wordt aangezet" trigger (volgens mij met een events:state node). Dan ben je flexibeler als je het later toch anders wilt inrichten, bijvoorbeeld met een fysieke knop, of in de app. Of pas triggeren als ook de telefoon van je vrouw aan de lader hangt. Of al deze mogelijkheden.

Dus aparte flows:
iPhone opladen -> zet sleep mode aan
sleep mode wordt aangezet -> doe licht uit

Wil je het nog wat complexer maken, dan kun je per persoon bijhouden of hij/zij slaapt, en afhankelijk van wie er slaapt en wie niet, reageert je huis anders (natuurlijk ook een "slaapt iedereen?" functionaliteit inbouwen). Beetje zoals de home/away werkt volgens mij: "is er iemand thuis", "is iedereen weg", ...

Feel free to Buy me a coffee


Acties:
  • +2 Henk 'm!

  • maarten_NL
  • Registratie: Mei 2013
  • Laatst online: 09-06 21:18
Koepert schreef op maandag 7 februari 2022 @ 18:00:
Gewoon om wat inspiratie op te doen (ik doe t nu met 2 inject nodes), hoe lossen jullie dit op?

- Trapverlichting (op beweging, los van HA) werkt met een controller
- Elke dag als het licht genoeg is (zeg 09:00 uur, geen luxwaarde aan de koppelen op dit moment) verlichting UIT
- Elke dag als het donker genoeg is (zeg 17:00, idem hierboven) verlichting weer AAN

Nu dus: inject, daily 17:00 --> Call service, Entity ON.
Je kan de standaard time range node ook gebruiken om op Sunset/Sunrise te schakelen:

Afbeeldingslocatie: https://tweakers.net/i/UGQLLxBhY4U0sKjH9uj3L-dTobo=/x800/filters:strip_exif()/f/image/M0yIWc26WDiObWhqCHqWaahX.png?f=fotoalbum_large

Vaillant AroTHERM+ WP - 1.8kWp W + 11.6kWp Z + 2.7kWp O PV - Kona EV + Kia ev3 - ESP8266 FTW!


Acties:
  • 0 Henk 'm!

  • HvB83
  • Registratie: Augustus 2003
  • Laatst online: 13-01 05:24
Ik ben recentelijk van Homey naar Home Assistant overgestapt en de stabiliteit is een verademing. Toegegeven is het wel een uitdaging voor een enthousiaste niet-programmeur, maar ik leer elke keer wat bij. Stukje voor stukje nieuwe automatisering bouwen die uiteindelijk werkt geeft een hoop voldoening. Waar ik nu tegenaan loop is het volgende.

Ik heb een zoneregeling gebouwd van verschillende Netatmo ruimtethermostaten, die individueel de afsluiterkleppen op de vloerverwarmingsverdeler per kamer kunnen bedienen en het ketelrelais kan aansturen. Dat heb ik voor elkaar gekregen en werkt. Waar ik nu vastloop, is dat ik het weekschema volgens een vast schema wil wijzigen, omdat ik daar op die momenten geen warmtevraag heb. De app van Netatmo kan het schema alleen handmatig aanpassen. En aangezien overal vloerverwarming ligt, is handmatig inschakelen per ruimte zodra je thuis bent niet echt een serieuze optie. Via Home Assistant kan ik het huidige schema wel uitlezen en een nieuw schema instellen, dus wil ik het via die weg proberen.

Wat ik nu wil, is op een vast moment in de week controleren welk schema er is ingesteld en in dat geval het andere schema inladen. De volgende informatie krijg ik terug als ik de entity uitlees in een debug node:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
object
entity_id: "climate.netatmo_woonkamer"
state: "auto"
attributes: object
hvac_modes: array[3]
min_temp: 7
max_temp: 30
target_temp_step: 0.5
preset_modes: array[4]
0: "away"
1: "boost"
2: "Frost Guard"
3: "Schedule"
current_temperature: 19.3
temperature: 18.5
hvac_action: "idle"
preset_mode: "Schedule"
attribution: "Data provided by Netatmo"
selected_schedule: "Standaard"
friendly_name: "Woonkamer"
supported_features: 17


Hoe kan ik nu in Node Red de informatie over het ingestelde schema in regel 19 achter "selected schedule: " gebruiken om uiteindelijk een switch aan te sturen?

Acties:
  • +2 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
HvB83 schreef op dinsdag 22 februari 2022 @ 10:36:
Ik ben recentelijk van Homey naar Home Assistant overgestapt en de stabiliteit is een verademing. Toegegeven is het wel een uitdaging voor een enthousiaste niet-programmeur, maar ik leer elke keer wat bij. Stukje voor stukje nieuwe automatisering bouwen die uiteindelijk werkt geeft een hoop voldoening. Waar ik nu tegenaan loop is het volgende.

Ik heb een zoneregeling gebouwd van verschillende Netatmo ruimtethermostaten, die individueel de afsluiterkleppen op de vloerverwarmingsverdeler per kamer kunnen bedienen en het ketelrelais kan aansturen. Dat heb ik voor elkaar gekregen en werkt. Waar ik nu vastloop, is dat ik het weekschema volgens een vast schema wil wijzigen, omdat ik daar op die momenten geen warmtevraag heb. De app van Netatmo kan het schema alleen handmatig aanpassen. En aangezien overal vloerverwarming ligt, is handmatig inschakelen per ruimte zodra je thuis bent niet echt een serieuze optie. Via Home Assistant kan ik het huidige schema wel uitlezen en een nieuw schema instellen, dus wil ik het via die weg proberen.

Wat ik nu wil, is op een vast moment in de week controleren welk schema er is ingesteld en in dat geval het andere schema inladen. De volgende informatie krijg ik terug als ik de entity uitlees in een debug node:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
object
entity_id: "climate.netatmo_woonkamer"
state: "auto"
attributes: object
hvac_modes: array[3]
min_temp: 7
max_temp: 30
target_temp_step: 0.5
preset_modes: array[4]
0: "away"
1: "boost"
2: "Frost Guard"
3: "Schedule"
current_temperature: 19.3
temperature: 18.5
hvac_action: "idle"
preset_mode: "Schedule"
attribution: "Data provided by Netatmo"
selected_schedule: "Standaard"
friendly_name: "Woonkamer"
supported_features: 17


Hoe kan ik nu in Node Red de informatie over het ingestelde schema in regel 19 achter "selected schedule: " gebruiken om uiteindelijk een switch aan te sturen?
Ik zie niet goed waar precies de inspringingen zitten in de data van de debug node die je post, maar ik zal een voorbeeld geven van een andere:

Afbeeldingslocatie: https://tweakers.net/i/nP6tAWDK2jJS3ruTmDsVAZaebhk=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/pcY4VUhhincnDBbzCVlonBJP.jpg?f=user_large

Als ik uit bovenstaande de waarde van battery wil hebben doe ik dat als volgt:

msg.data.attributes.battery

Deze kun je dus ook in een switch node instellen in het veld "property" (let op dat "msg" er waarschijnlijk al staat) en vervolgens waarden aanmaken waar je op wilt checken.

(Is dit wat je bedoelt?)

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • HvB83
  • Registratie: Augustus 2003
  • Laatst online: 13-01 05:24
musicpixel schreef op dinsdag 22 februari 2022 @ 13:06:
[...]


Ik zie niet goed waar precies de inspringingen zitten in de data van de debug node die je post, maar ik zal een voorbeeld geven van een andere:

...

Deze kun je dus ook in een switch node instellen in het veld "property" (let op dat "msg" er waarschijnlijk al staat) en vervolgens waarden aanmaken waar je op wilt checken.

(Is dit wat je bedoelt?)
Het werkt! Ontzettend bedankt, hier kan ik zeker weer op verder bouwen voor andere projecten.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Ik zit even weer met iets ogenschijnlijk simpels.. waar ik toch niet uit kom. Ik wilde in Node-red mijn agenda items verwerken om acties op te zetten waar gewenst. Dan begin ik altijd simpel door gewoon te notificeren dat er een event is. en dan met die info verder.. maar nu:

Events-state node met mn calendar. Die geeft output:

Belangrijkste daarin, die ik verwerk in een template-node:
code:
1
 {{data.new_state.attributes.message}} begint om  {{data.new_state.attributes.start_time}} tot {{data.new_state.attributes.end_time}}


Maar die start_time en end_time zijn als volgt geformuleerd:

code:
1
2
start_time: '2022-03-02 08:00:00'
end_time: '2022-03-02 14:00:00'


Nu worstel ik met dit omzetten naar simpelweg "08:00" en "14:00"

- Dat leek mij een klusje voor de function- node, maar waar in de flow?
- Hoe zorg ik dat de originele message incl die input wel behouden blijft
- Is een change node een betere optie?


ik had deze tip wel gevonden:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function addZero(i) {
  if (i < 10) {
    i = "0" + i;
  }
  return i;
}

var d = new Date();
var h = addZero(d.getHours());
var m = addZero(d.getMinutes());
msg.payload = h + ":" + m ;

return msg;


Maar die zet alleen de huidige tijd erin

[ Voor 15% gewijzigd door Koepert op 02-03-2022 10:48 ]


Acties:
  • +1 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
@Koepert
Het lijkt er op dat je een tekst wilt voorbereiden die de volgende node moet gebruiken, en dat je dat nu met een template node probeert. Weet niet of het daarmee ook lukt, maar m.i. is een function node makkelijker.

Ik zou dus een function node maken, die alle input verwerkt en uiteindelijk de tekst uitspuugt die je nodig hebt.

De twee tijdstippen zijn daarbij de lastigste omdat ze niet het formaat hebben dat je nodig hebt.

Je kunt start_time en end_time op twee manieren omzetten naar het formaat wat je nodig hebt:
1. De 2 datums als string (tekst) behandelen en hier in knippen
2. De 2 datums die nu tekst zijn omzetten naar een datum-object, hier de uren en minuten uit halen en dan weer omzetten naar een string/tekst die je in je message kunt plakken.

Voordat je er mee begint: ik neem aan dat je de message eerst hebt getest met hard ingevulde waarden, ipv met variabelen? Heb je bijvoorbeeld echt die voorloop-nul bij de uren nodig? Of maakt het niet uit?

Hoe dan ook, werken met datum/tijd is meestal behoorlijk irritant.

Als je voor optie 1 kiest:
Je wilt voor elke datum/tijd alleen de tijd overhouden, dus:
- alles voor de spatie mag weg
- alles achter de laatste : mag weg (of laatste 3 karakters)

Zoek even met google op "javascript" + een van de volgende woorden:
- split
- pop
- join
- indexOf
- substring

En kijk of je daarmee verder komt. Regular expression kan ook, maar dat is meer geavanceerd ;-)
Voorbeelden hiervan in javascript met een andere tekst:
https://stackoverflow.com...javascript-split-a-string

Als je voor 2 kiest is je voorbeeldcode een aardig begin.
Je moet dan alleen nog zorgen dat je niet de huidige tijd gebruikt maar de tijd van start/end_time.
Kijk even hier of je hiermee verder komt:
https://www.w3schools.com/js/js_dates.asp

Ook hier kun je nog wat aan hebben:
https://stackoverflow.com...-format-a-javascript-date

PS Ik kan alles voor je uitwerken, maar ik denk dat je er meer van leert als je het zelf probeert ;-)

Feel free to Buy me a coffee


Acties:
  • +1 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op woensdag 2 maart 2022 @ 17:34:
@Koepert

Voordat je er mee begint: ik neem aan dat je de message eerst hebt getest met hard ingevulde waarden, ipv met variabelen? Heb je bijvoorbeeld echt die voorloop-nul bij de uren nodig? Of maakt het niet uit?

Hoe dan ook, werken met datum/tijd is meestal behoorlijk irritant.

PS Ik kan alles voor je uitwerken, maar ik denk dat je er meer van leert als je het zelf probeert ;-)
Om hier even op te reageren:

1) Het gaat om een calendar entity. De output daarvan is deze hele start/end string. Ik wilde dat graag naar iets 'mooiers' ombouwen. Of dat uiteindelijk echter 08:00 uur, 8:00 uur of 8 uur is, maakt me niet zoveel uit, maar omdat er ook afspraken op :15 en :30 vallen lijkt die laatste me niet praktisch.

2) Dat had ik door.. Vooral ook omdat je nu dus een ' deel' uit een totale message moet trekken, anders formatten, en weer aan elkaar plakken.

3) Waardeer ik.. Ik ga even rustig de tijd nemen om alle voorbeelden door te spitten en te kijken hoever ik kom.

4) nog even voor de volledigheid, dit is de volledige output van een calendar-item.


code:
1
{"payload":"off","data":{"entity_id":"calendar.xx","old_state":{"entity_id":"calendar.prive","state":"on","attributes":{"message":"Yoga","all_day":false,"start_time":"2022-03-02 19:00:00","end_time":"2022-03-02 20:15:00","location":"xx 24","description":null,"offset_reached":false,"friendly_name":"Privé"},"last_changed":"2022-03-02T18:19:29.958855+00:00","last_updated":"2022-03-02T18:19:29.958855+00:00","context":{"id":"227334cbf4a98d6782bb8a8decacb07c","parent_id":null,"user_id":"b721d002302e4f0d87ac0bbc49c0d83c"},"original_state":"on"},"new_state":{"entity_id":"calendar.xx","state":"off","attributes":{"message":"Yoga","all_day":false,"start_time":"2022-03-02 19:00:00","end_time":"2022-03-02 20:15:00","location":"xx 24","description":null,"offset_reached":false,"friendly_name":"Privé"},"last_changed":"2022-03-02T18:19:59.455206+00:00","last_updated":"2022-03-02T18:19:59.455206+00:00","context":{"id":"42aa4ec3ee46db6e554f565af0a360bc","parent_id":null,"user_id":"b721d002302e4f0d87ac0bbc49c0d83c"},"original_state":"off","timeSinceChangedMs":3}},"topic":"calendar.xx","_msgid":"4988d008fdc1bfb1"}



@musicpixel Het is gelukt.. Wellicht veel te moeilijk, maar deze ' code' begrijp ik, en t resultaat is wat ik wil --> Eventname + start en eind tijd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var agendaStart=new Date(msg.data.new_state.attributes.start_time);
var getStartTime = agendaStart.toLocaleTimeString('nl-NL', {hour: '2-digit', minute:'2-digit'});
var formatAgendaStart = getStartTime;

var agendaEnd=new Date(msg.data.new_state.attributes.end_time);
var getEndTime = agendaEnd.toLocaleTimeString('nl-NL', {hour: '2-digit', minute:'2-digit'});
var formatAgendaEnd = getEndTime;

msg.payload = {
    start: formatAgendaStart,
    end: formatAgendaEnd,
    messages :{
        headline: msg.data.new_state.attributes.message,
        location: msg.data.new_state.attributes.location
    }
}
return msg.payload;

[ Voor 14% gewijzigd door Koepert op 02-03-2022 19:49 ]


Acties:
  • +1 Henk 'm!

  • denuz
  • Registratie: Augustus 2006
  • Laatst online: 00:23
Koepert schreef op woensdag 2 maart 2022 @ 19:21:
[...]


Om hier even op te reageren:

1) Het gaat om een calendar entity. De output daarvan is deze hele start/end string. Ik wilde dat graag naar iets 'mooiers' ombouwen. Of dat uiteindelijk echter 08:00 uur, 8:00 uur of 8 uur is, maakt me niet zoveel uit, maar omdat er ook afspraken op :15 en :30 vallen lijkt die laatste me niet praktisch.

2) Dat had ik door.. Vooral ook omdat je nu dus een ' deel' uit een totale message moet trekken, anders formatten, en weer aan elkaar plakken.

3) Waardeer ik.. Ik ga even rustig de tijd nemen om alle voorbeelden door te spitten en te kijken hoever ik kom.

4) nog even voor de volledigheid, dit is de volledige output van een calendar-item.


code:
1
{"payload":"off","data":{"entity_id":"calendar.xx","old_state":{"entity_id":"calendar.prive","state":"on","attributes":{"message":"Yoga","all_day":false,"start_time":"2022-03-02 19:00:00","end_time":"2022-03-02 20:15:00","location":"xx 24","description":null,"offset_reached":false,"friendly_name":"Privé"},"last_changed":"2022-03-02T18:19:29.958855+00:00","last_updated":"2022-03-02T18:19:29.958855+00:00","context":{"id":"227334cbf4a98d6782bb8a8decacb07c","parent_id":null,"user_id":"b721d002302e4f0d87ac0bbc49c0d83c"},"original_state":"on"},"new_state":{"entity_id":"calendar.xx","state":"off","attributes":{"message":"Yoga","all_day":false,"start_time":"2022-03-02 19:00:00","end_time":"2022-03-02 20:15:00","location":"xx 24","description":null,"offset_reached":false,"friendly_name":"Privé"},"last_changed":"2022-03-02T18:19:59.455206+00:00","last_updated":"2022-03-02T18:19:59.455206+00:00","context":{"id":"42aa4ec3ee46db6e554f565af0a360bc","parent_id":null,"user_id":"b721d002302e4f0d87ac0bbc49c0d83c"},"original_state":"off","timeSinceChangedMs":3}},"topic":"calendar.xx","_msgid":"4988d008fdc1bfb1"}



@musicpixel Het is gelukt.. Wellicht veel te moeilijk, maar deze ' code' begrijp ik, en t resultaat is wat ik wil --> Eventname + start en eind tijd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var agendaStart=new Date(msg.data.new_state.attributes.start_time);
var getStartTime = agendaStart.toLocaleTimeString('nl-NL', {hour: '2-digit', minute:'2-digit'});
var formatAgendaStart = getStartTime;

var agendaEnd=new Date(msg.data.new_state.attributes.end_time);
var getEndTime = agendaEnd.toLocaleTimeString('nl-NL', {hour: '2-digit', minute:'2-digit'});
var formatAgendaEnd = getEndTime;

msg.payload = {
    start: formatAgendaStart,
    end: formatAgendaEnd,
    messages :{
        headline: msg.data.new_state.attributes.message,
        location: msg.data.new_state.attributes.location
    }
}
return msg.payload;
Ik zou deze node gebruiken.

Is denk ik nog wat makkelijker dan wat je nu hebt :)
Afbeeldingslocatie: https://tweakers.net/i/TiFIDsDIa1jemUOcr4bpsSwR-3Y=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/d2vsF4RJMdWaT0sA2vSkgbMd.png?f=user_large

(in het algemeen probeer ik, voordat ik de function node ga gebruiken te zoeken of iemand al een mooie node gemaakt heeft :))

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
denuz schreef op woensdag 2 maart 2022 @ 19:58:
[...]


Ik zou deze node gebruiken.

Is denk ik nog wat makkelijker dan wat je nu hebt :)
[Afbeelding]

(in het algemeen probeer ik, voordat ik de function node ga gebruiken te zoeken of iemand al een mooie node gemaakt heeft :))
Je kunt het op twee manieren bekijken. Een datum formatteren is een beetje irritant, maar ook weer geen hogere raketwetenschap in javascript.

Als ik moet kiezen tussen 1 of 2 regels javascript of het installeren van een compleet nieuwe node, dan kies ik voor die 1 of 2 regels, want wil voor zoiets simpels niet afhankelijk zijn van een te installeren node, waarvan je niet weet hoe lang deze onderhouden blijft worden.

Voor complexere dingen (en misschien dingen die je heel vaak gebruikt) daarentegen kan het wel een goed idee zijn om te zoeken naar een bestaande node.

Maar goed, dat mag ieder voor zich bepalen natuurlijk.

Feel free to Buy me a coffee


Acties:
  • +1 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
@Koepert
Goed gedaan, en nog best snel ook!

Kan het alleen beoordelen in context van deze ene node en niet tov andere nodes eromheen, maar zou niet echt iets veranderen eigenlijk. Enige wat je nog zou kunnen doen is regel 2 en 3 samenvoegen, en ook regel 6 en 7.

Verder zou je nog kunnen testen met calendar items zonder begin en/of eindtijd (als all_day true is), misschien dat je daar nog een controle voor zou moeten inbouwen, hetzij in de function node, hetzij erbuiten.

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Allen nog bedankt voor de hulp, ik heb weer een nieuwe speurtocht ;)

Ik kwam alhier: https://github.com/jcalla...ssistant-config/issues/52 deze toffe automation tegen.

Nu heb ik die al grotendeels in NodeRed zitten (had ik al, op basis andere voorbeelden) maar het gaat mij vooral om de images die in de notificatie zitten. Is dat/ zoiets in NodeRed na te bootsen?

specifiek dus datgeen in bovenstaande link gedefinieerd staat als:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  - variables:
      bin: "{{ states('sensor.calendar_house_bin') | replace('⬛ ','') | replace('⬜ ','') | replace('🟦 ','') | lower }}"
      title: "⚠️ Chore - Household bin"
      message: "The {{ states('sensor.calendar_house_bin') | replace('⬛ ','') | replace('⬜ ','') | replace('🟦 ','') | lower }} needs to be taken out."
      lovelace: "/lovelace-config/bins"
      tag: "bin_day"
      image: >- 
        {% if states('sensor.calendar_house_bin') == "⬜ Grey bin (waste)" %}
          /local/images/bins/bins_clear_indicator_waste.png
        {% elif states('sensor.calendar_house_bin') == "🟦 Blue bin (paper and card)" %}
          /local/images/bins/bins_clear_indicator_paper.png
        {% elif states('sensor.calendar_house_bin') == "⬛ Black bin (mixed recycling)" %}
          /local/images/bins/bins_clear_indicator_mixed.png
        {% endif %}    



Nu dacht ik eerst dat als volgt aan te pakken:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var BinImage= {% if states('sensor.calendar_house_bin') == "⬜ Grey bin (waste)" %}          /
            /local/images/bins/bins_clear_indicator_waste.png,
        {% elif states('sensor.calendar_house_bin') == "🟦 Blue bin (paper and card)" %}
          /local/images/bins/bins_clear_indicator_paper.png,
        {% elif states('sensor.calendar_house_bin') == "⬛ Black bin (mixed recycling)" %}
          /local/images/bins/bins_clear_indicator_mixed.png
        {% endif %}   

msg.payload = {
    messages :{
        image: BinImage
    }
}
return msg.payload;



Maar dat komt niet goed. Hoe (als het uberhaupt kan) kun je zoiets in NodeRed verwerken?

Acties:
  • 0 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
Koepert schreef op vrijdag 11 maart 2022 @ 20:09:
Allen nog bedankt voor de hulp, ik heb weer een nieuwe speurtocht ;)

Ik kwam alhier: https://github.com/jcalla...ssistant-config/issues/52 deze toffe automation tegen.

Nu heb ik die al grotendeels in NodeRed zitten (had ik al, op basis andere voorbeelden) maar het gaat mij vooral om de images die in de notificatie zitten. Is dat/ zoiets in NodeRed na te bootsen?

specifiek dus datgeen in bovenstaande link gedefinieerd staat als:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  - variables:
      bin: "{{ states('sensor.calendar_house_bin') | replace('⬛ ','') | replace('⬜ ','') | replace('🟦 ','') | lower }}"
      title: "⚠️ Chore - Household bin"
      message: "The {{ states('sensor.calendar_house_bin') | replace('⬛ ','') | replace('⬜ ','') | replace('🟦 ','') | lower }} needs to be taken out."
      lovelace: "/lovelace-config/bins"
      tag: "bin_day"
      image: >- 
        {% if states('sensor.calendar_house_bin') == "⬜ Grey bin (waste)" %}
          /local/images/bins/bins_clear_indicator_waste.png
        {% elif states('sensor.calendar_house_bin') == "🟦 Blue bin (paper and card)" %}
          /local/images/bins/bins_clear_indicator_paper.png
        {% elif states('sensor.calendar_house_bin') == "⬛ Black bin (mixed recycling)" %}
          /local/images/bins/bins_clear_indicator_mixed.png
        {% endif %}    



Nu dacht ik eerst dat als volgt aan te pakken:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var BinImage= {% if states('sensor.calendar_house_bin') == "⬜ Grey bin (waste)" %}          /
            /local/images/bins/bins_clear_indicator_waste.png,
        {% elif states('sensor.calendar_house_bin') == "🟦 Blue bin (paper and card)" %}
          /local/images/bins/bins_clear_indicator_paper.png,
        {% elif states('sensor.calendar_house_bin') == "⬛ Black bin (mixed recycling)" %}
          /local/images/bins/bins_clear_indicator_mixed.png
        {% endif %}   

msg.payload = {
    messages :{
        image: BinImage
    }
}
return msg.payload;



Maar dat komt niet goed. Hoe (als het uberhaupt kan) kun je zoiets in NodeRed verwerken?
ik denk dat je er sowieso eerst een string van moet maken, javascript snapt niet veel van een HA/Jinja template.
en 'em zo met die "image:" mee te geven dat werkt ook niet denk ik.
wat misschien wel werkt is de template (als string!) naar de ha-template node te sturen, en dan krijg je het gewenste resultaat als payload terug, wat je dan vervolgens in die message achter "image:" kunt zetten.

edit: of, met ha current state de 'sensor.calendar_house_bin' opvragen en de if/elseif daarna in javascript doen

Acties:
  • 0 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
...

[ Voor 99% gewijzigd door Step5 op 12-03-2022 22:56 ]


Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:23
Is je gemeente niet aangesloten bij AfvalWijzer? Ik krijg via die app altijd netjes een pushmelding als er een container aan de straat gezet moet worden.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
ThinkPad schreef op maandag 14 maart 2022 @ 22:09:
Is je gemeente niet aangesloten bij AfvalWijzer? Ik krijg via die app altijd netjes een pushmelding als er een container aan de straat gezet moet worden.
Zeker is onze gemeente dat..


Maar where's the fun in that?

Ik stoei ondertussen vrolijk verder :)

Acties:
  • 0 Henk 'm!

  • Megalomania
  • Registratie: April 2011
  • Nu online
RobertMe schreef op maandag 14 januari 2019 @ 11:07:
[...]

Optie 3: wachten op de nieuwe major versie van Zigbee2mqtt. Deze krijgt ondersteuning voor groepen waarbij de lampen op Zigbee niveau gegroepeerd worden (bijkomend voordeel is dat bv alle lampen tegelijk aan en uit gaan i.p.v. met een kleine vertraging).
[..]
Tijdje terug deze post maar hoe kan ik mqtt groups aanroepen in node red? In MQTT explorer zie ik geen topic bij de groups. Hoe doen jullie dit? Alle lampen los aanroepen? Een groep lijkt me ideaal want als je dan later dingen toevoegt, of namen aanpast, heeft dat geen effect op de automations in NR.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Met het risico da tik het mezelf heeel moeilijk ga maken :P..

- Sensor : badkamer.humidity
- boolean: Douche_aan


NodeRed:

- Current State badkamer.humidity --> Switch Node
- Switch Node: gelijk aan of Boven 50 output 1. Minder dan 50: Output 2
- Output 1: Call Service Boolean Douche_aan AAN
- Output 2: Call Service Boolean Douche_aan UIT

Voor AAN werkt dit prima.. Kan nog naar iets lager dan 50, maar ok.

Voor UIT, logischerwijs eigenlijk, duurt dit aanmerkelijk langer (te lang) omdat de humidity rond de 70/80% zit na douchen en maar langzaam naar/onder 50 zakt.

Is er ook een manier om te kijken of de humidity AFNEEMT ipv onder de 50?

Dan moet je denk ik een function node gebruiken om old & new state met elkaar te vergelijken?

Iemand een suggestie/voorbeeld?

Acties:
  • +1 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Koepert schreef op vrijdag 1 april 2022 @ 11:51:
Met het risico da tik het mezelf heeel moeilijk ga maken :P..

- Sensor : badkamer.humidity
- boolean: Douche_aan


NodeRed:

- Current State badkamer.humidity --> Switch Node
- Switch Node: gelijk aan of Boven 50 output 1. Minder dan 50: Output 2
- Output 1: Call Service Boolean Douche_aan AAN
- Output 2: Call Service Boolean Douche_aan UIT

Voor AAN werkt dit prima.. Kan nog naar iets lager dan 50, maar ok.

Voor UIT, logischerwijs eigenlijk, duurt dit aanmerkelijk langer (te lang) omdat de humidity rond de 70/80% zit na douchen en maar langzaam naar/onder 50 zakt.

Is er ook een manier om te kijken of de humidity AFNEEMT ipv onder de 50?

Dan moet je denk ik een function node gebruiken om old & new state met elkaar te vergelijken?

Iemand een suggestie/voorbeeld?
Ik heb dit voor mijn badkamer

Afbeeldingslocatie: https://tweakers.net/i/X_tMAe-42aA3PrkrpjdnwkvK9NA=/800x/filters:strip_icc():strip_exif()/f/image/kyptTjQJkQGMDIOqrP1lTKi4.jpg?f=fotoalbum_large

boven de 82 met kleine vertraging gaat de ventilatie aan en eronder gaat deze weer uit

code:
1
[{"id":"dabfc11eb84bbe74","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"da936627bd5ca3b5","type":"stoptimer","z":"dabfc11eb84bbe74","duration":"5","units":"Minute","payloadtype":"num","payloadval":"0","name":"Wait 5 Minutes","x":560,"y":240,"wires":[["7f7cfde06dc26ef7"],[]]},{"id":"7f7cfde06dc26ef7","type":"api-current-state","z":"dabfc11eb84bbe74","name":"High Humidity?","server":"85cb4144.a30f7","version":3,"outputs":2,"halt_if":"82","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.badkamer_badkamer_vocht_273","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","x":780,"y":240,"wires":[["107a80b62d02350c"],["72074b6ed6d4e029"]]},{"id":"72074b6ed6d4e029","type":"api-call-service","z":"dabfc11eb84bbe74","name":"Turn off fan","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.badkamer_badkamer_ventilatie_35"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1030,"y":240,"wires":[[]]},{"id":"107a80b62d02350c","type":"stoptimer","z":"dabfc11eb84bbe74","duration":"1","units":"Minute","payloadtype":"num","payloadval":"0","name":"Wait 1 min","x":770,"y":180,"wires":[["7f7cfde06dc26ef7"],[]]},{"id":"78cd6b7d287363c4","type":"server-state-changed","z":"dabfc11eb84bbe74","name":"High Humidity","server":"85cb4144.a30f7","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.badkamer_badkamer_vocht_273","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"82","halt_if_type":"num","halt_if_compare":"gt","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":130,"y":240,"wires":[["33e739639024a48f"],[]]},{"id":"33e739639024a48f","type":"api-call-service","z":"dabfc11eb84bbe74","name":"Turn on fan","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.badkamer_badkamer_ventilatie_35"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":350,"y":240,"wires":[["da936627bd5ca3b5"]]},{"id":"85cb4144.a30f7","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
d-vine schreef op vrijdag 1 april 2022 @ 13:02:
[...]


Ik heb dit voor mijn badkamer

[Afbeelding]

boven de 82 met kleine vertraging gaat de ventilatie aan en eronder gaat deze weer uit

code:
1
[{"id":"dabfc11eb84bbe74","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"da936627bd5ca3b5","type":"stoptimer","z":"dabfc11eb84bbe74","duration":"5","units":"Minute","payloadtype":"num","payloadval":"0","name":"Wait 5 Minutes","x":560,"y":240,"wires":[["7f7cfde06dc26ef7"],[]]},{"id":"7f7cfde06dc26ef7","type":"api-current-state","z":"dabfc11eb84bbe74","name":"High Humidity?","server":"85cb4144.a30f7","version":3,"outputs":2,"halt_if":"82","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.badkamer_badkamer_vocht_273","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","x":780,"y":240,"wires":[["107a80b62d02350c"],["72074b6ed6d4e029"]]},{"id":"72074b6ed6d4e029","type":"api-call-service","z":"dabfc11eb84bbe74","name":"Turn off fan","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.badkamer_badkamer_ventilatie_35"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1030,"y":240,"wires":[[]]},{"id":"107a80b62d02350c","type":"stoptimer","z":"dabfc11eb84bbe74","duration":"1","units":"Minute","payloadtype":"num","payloadval":"0","name":"Wait 1 min","x":770,"y":180,"wires":[["7f7cfde06dc26ef7"],[]]},{"id":"78cd6b7d287363c4","type":"server-state-changed","z":"dabfc11eb84bbe74","name":"High Humidity","server":"85cb4144.a30f7","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.badkamer_badkamer_vocht_273","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"82","halt_if_type":"num","halt_if_compare":"gt","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":130,"y":240,"wires":[["33e739639024a48f"],[]]},{"id":"33e739639024a48f","type":"api-call-service","z":"dabfc11eb84bbe74","name":"Turn on fan","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.badkamer_badkamer_ventilatie_35"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":350,"y":240,"wires":[["da936627bd5ca3b5"]]},{"id":"85cb4144.a30f7","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]
Thanx.. Ja die van mij is soortgelijk. Alleen ik zou t 'window' dat deze aan is graag wat krapper willen

Dus als de humidity AFNEEMT ipv beneden de waarde X is..

Acties:
  • +1 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Koepert schreef op vrijdag 1 april 2022 @ 13:57:
[...]


Thanx.. Ja die van mij is soortgelijk. Alleen ik zou t 'window' dat deze aan is graag wat krapper willen

Dus als de humidity AFNEEMT ipv beneden de waarde X is..
waarom verhoog je de aan waarde niet?
Als ik de aan waarde lager zet dan heb je van die niet douche situaties en lucht vochtigheden bij bepaalde weer waarde deze boven de 60 soms 70 komt en dan wil je de ventilator nog niet aan hebben.
Althans onze badkamer omgeving.

Daarom zit mijn aan waarde op 82 duurt een paar minuten om de ventilator aan te zetten en daaronder gaat de ventilator uit ook pas na een wat kortere periode. in de praktijk is dit bij mij niet te lang en ook niet te kort.

Ik had toen ik alles in Fibaro deed een LUA scene van iemand met de meest creatieve berekeningen en oplossing voor een badkamer ventilatie. En in de praktijk hikte dat wel eens waardoor het niet aan of niet uit ging onder unieke omstandigheden.

Nu ik sinds een klein jaar HA gebruik met node-red had ik deze oplossing getest van een voorbeeld en het deed het in de praktijk super.

Maar elk huis en omgeving is weer anders dat snap ik maar ik ben van ingewikkeld na simpel gegaan en het werkt zelfs beter.

Acties:
  • +1 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
Koepert schreef op vrijdag 1 april 2022 @ 11:51:
Met het risico da tik het mezelf heeel moeilijk ga maken :P..

- Sensor : badkamer.humidity
- boolean: Douche_aan


NodeRed:

- Current State badkamer.humidity --> Switch Node
- Switch Node: gelijk aan of Boven 50 output 1. Minder dan 50: Output 2
- Output 1: Call Service Boolean Douche_aan AAN
- Output 2: Call Service Boolean Douche_aan UIT

Voor AAN werkt dit prima.. Kan nog naar iets lager dan 50, maar ok.

Voor UIT, logischerwijs eigenlijk, duurt dit aanmerkelijk langer (te lang) omdat de humidity rond de 70/80% zit na douchen en maar langzaam naar/onder 50 zakt.

Is er ook een manier om te kijken of de humidity AFNEEMT ipv onder de 50?

Dan moet je denk ik een function node gebruiken om old & new state met elkaar te vergelijken?

Iemand een suggestie/voorbeeld?
Heb je de RBE/Filter node geprobeerd?
Afbeeldingslocatie: https://tweakers.net/i/ELxyGjDWNO9bKMPmca9G9iSTm4Y=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/ej5xOqUCuRmiK5itSkocrQyf.png?f=user_large
Ik kreeg 'm niet fatsoenlijk gescreenshot, maar ik bedoel dan een van de "block unless value change..." keuzes

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Step5 schreef op vrijdag 1 april 2022 @ 22:28:
[...]


Heb je de RBE/Filter node geprobeerd?
[Afbeelding]
Ik kreeg 'm niet fatsoenlijk gescreenshot, maar ik bedoel dan een van de "block unless value change..." keuzes
Nog niet

Ga k eens naar kijken

@Step5 Ik zit hier naar te kijken, maar als ik deze gebruik dan gaat dit zowel voor increase als decrecrease. en of de value nu in een stap van 10 of 1 zakt/stijgt maakt me niet zoveel uit.. t gaat mij juist om de constatering dat deze weer daalt..

[ Voor 20% gewijzigd door Koepert op 02-04-2022 09:52 ]


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:23
Ik heb voor de ventilatie in de douche een temperatuursensor op de heetwaterleiding zitten. Dat werkt al een aantal jaren perfect. Geen gedoe met humidity die in zomer/winter anders is.

Acties:
  • 0 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
Koepert schreef op vrijdag 1 april 2022 @ 22:38:
[...]

Nog niet

Ga k eens naar kijken

@Step5 Ik zit hier naar te kijken, maar als ik deze gebruik dan gaat dit zowel voor increase als decrecrease. en of de value nu in een stap van 10 of 1 zakt/stijgt maakt me niet zoveel uit.. t gaat mij juist om de constatering dat deze weer daalt..
ah, dat is jammer. heb ook niet veel ervaring ermee, heb er wel eens mee gespeeld maar deed toen ook niet wat ik wilde.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
ThinkPad schreef op zaterdag 2 april 2022 @ 07:56:
Ik heb voor de ventilatie in de douche een temperatuursensor op de heetwaterleiding zitten. Dat werkt al een aantal jaren perfect. Geen gedoe met humidity die in zomer/winter anders is.
Ja snap dat er betere methoden zijn. Maar heb een Aqara Temp + humidty sensor in de douche.. Dat is t enige voor nu. Die temp-deel van de sensor reageert ook traag bij douchen (ligt vlakbij douchewand) en dan nog zit ik met het deel: ' reageer op afname temperatuur' ipv ' beneden bepaalde waarde'..

Acties:
  • +1 Henk 'm!
Ik heb de buitenluchtvochtigheid meegenomen in de berekening.

Momenteel niet in staat om de code te delen, maar dat is een flinke lap geworden :z

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
lolgast schreef op zaterdag 2 april 2022 @ 11:01:
Ik heb de buitenluchtvochtigheid meegenomen in de berekening.

Momenteel niet in staat om de code te delen, maar dat is een flinke lap geworden :z
Ben benieuwd. K gebruik NodeRed vooral voor redelijk basis automations maar vind t ook leuk om te leren van de code die sommigen gebruiken Incl de functies ed

Acties:
  • +4 Henk 'm!
@Koepert Ik zie dat ik het zelf niet eens meer wist en blijkbaar ben overgestapt naar hoe de luchtvochtigheid zich verhoudt tot andere kamers op dezelfde verdieping. Daarbij kan de ventilator alleen aan als de verlichting aanstaat (dat gáát wel eens fout als de zon schijnt :+ ) en als de verlichting uit is kan de fan alleen op de laagste stand en als de lamp langer dan 5 minuten uit is kan hij niet aan en als hij aanstaat, gaat hij op dat moment uit.
Om pendelgedrag te voorkomen mag de stand maximaal elke 2 minuten wijzigen (behalve door de verlichting, die overruled een en ander)
Dáárnaast heb ik een knop bij het bad die bij eenmalig indrukken instelt dat er iemand in bad ligt en de afzuiging daarmee niet op de hoogste stand kan (dat is best koud met de luchtverplaatsing). Als die knop dubbel wordt ingedrukt dimt de verlichting en daarmee wordt bepaald dat de afzuiging helemaal niet aan mag.

Volgens mij ben ik er dan wel :+

Afbeeldingslocatie: https://images.lolgast.nl/uploads/big/aaea068735d2e3cf3d510332680f126b.png

Code in 'Bepaal 'stand''-node
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
let bad = flow.get("badkamer.bad_gebruikt")
let old = flow.get("badkamer.humidity");

function getState(h){
  const hassio = global.get('homeassistant')

  return parseFloat(hassio.hassIO.states[h].state).toFixed(1)
}

function getHumids(){
  hum = [];

  hum[0] = getState('sensor.nina_humidity');
  hum[1] = getState('sensor.slaapkamer_humidity');
  hum[2] = getState('sensor.babykamer_humidity');
  hum[3] = getState('sensor.badkamer_airquality_humidity');

  return hum;
}

function calc(){
  sum = 0;
  hum = getHumids()

  for( i = 0; i < hum.length; i++ ){
      sum += parseInt( hum[i] );
  }

  hum_avg = sum/hum.length;

  return Math.round((current / hum_avg * 100) - 100);
}

// Badknop gebruikt
if (msg.topic.includes("badschakelaar") === true){
    if (msg.payload.action === "double"){
        msg.stand = 0
    } else if (Math.round((old / hum_avg * 100) - 100) >= 3){
        msg.stand = 1
    } else {
        msg.stand = 0
    }
    flow.set("badkamer.bad_gebruikt","ja");
    node.status({text:"Bad in gebruik" + ". Stand: " + msg.stand});
    return msg
}

let current = (msg.payload.humidity).toFixed(1);
flow.set("badkamer.humidity",current);

if (bad === "ja") {
    node.status({text:"Bad in gebruik. " + calc()});
    if (calc() >= 3 && msg.data.attributes.brightness > 75) {
        msg.stand = 1;
        return msg;
    }
    msg.stand = 0;
    return msg;
}

node.status({text:"Current: " + current + " , Old: " + old});

let time = Date.now();
let hourOfDay = new Date(time).getHours();
if (hourOfDay >= 22 || hourOfDay <= 4){
    {return}
}

if (msg.light == "off"){
    // 5 minuten of meer?
    if (Math.round(msg.data.timeSinceChangedMs / 60000 > 5)){
        msg.stand = 0
        return msg}
    // Voorkom verhogen snelheid tijdens 5 minuten trigger
    else {return}
}

// Stijgend
if (old - current < 0){
    // Meer dan 8% toegenomen of 10% verschil op average
    if ((current - old) / old * 100 > 8 || calc() > 6){
        msg.stand = 2 }
    else if (calc() >= 3 && calc() <= 6){
        msg.stand = 1 }
    else {
        msg.stand = 0 }
} else {
// Dalend
    if (calc() > 3 && calc() <= 6){
        msg.stand = 1;
    } else if (calc() > 6){
        msg.stand = 2;
    } else {
        msg.stand = 0;
    }
}

return msg;

Acties:
  • 0 Henk 'm!

  • OcGuru
  • Registratie: Juni 2004
  • Laatst online: 22:18

OcGuru

Giulietta Qv

Even een simpele vraag.

Ik krijg een waarde binnen van een hue motion sensor(lux)
Nu wil ik een lamp pas schakelen als lux een bepaalde onderwaarde heeft.
Ik heb nu een slider aangemaakt op het dashboard om deze te kunnen verstellen.(input_number.lux_meting)

Als ik nu een switch node gebruik en ik hang deze aan de lux meting met de regel < 100 werkt dit prima.
Hoe krijg ik het nu voor elkaar dat deze naar de variable kijkt ? (input_number.lux_meting)

Kan dit uberhaupt met een switch node of moet dit met een function node gemaakt worden?

Bl44t


Acties:
  • 0 Henk 'm!

  • Step5
  • Registratie: Oktober 2011
  • Laatst online: 06-06 19:48
OcGuru schreef op zaterdag 2 april 2022 @ 22:37:
Even een simpele vraag.

Ik krijg een waarde binnen van een hue motion sensor(lux)
Nu wil ik een lamp pas schakelen als lux een bepaalde onderwaarde heeft.
Ik heb nu een slider aangemaakt op het dashboard om deze te kunnen verstellen.(input_number.lux_meting)

Als ik nu een switch node gebruik en ik hang deze aan de lux meting met de regel < 100 werkt dit prima.
Hoe krijg ik het nu voor elkaar dat deze naar de variable kijkt ? (input_number.lux_meting)

Kan dit uberhaupt met een switch node of moet dit met een function node gemaakt worden?
heb het nu ff niet voor mijn neus, maar denk dat het moet lukken door de waarde van de slider in een flow of global context variabele te schrijven en die dan te gebruiken in de switch node.
https://cookbook.nodered.org/basic/route-on-context

Acties:
  • 0 Henk 'm!

  • GORby
  • Registratie: Januari 2002
  • Laatst online: 08-06 15:04
@OcGuru Je kan een change node achter de slider hangen, die de waarde van de slider opslaat in een flow of global variabele. In de switch node ga je dan niet vergelijken met een vast getal, maar met flow.minLux bijvoorbeeld.

Acties:
  • 0 Henk 'm!

  • BazemanKM
  • Registratie: Januari 2008
  • Laatst online: 23:05
Hallo,

Ik gebruik OpenMQTTGateway_ESP32_OLM_GTWE om BLE naar MQTT te krijgen.

Ik heb een LYWSD03MMC thermometer en wil de temperatuur daarvan via Node-Red naar Domoticz sturen.

In MQTT komt dit bericht binnen en zo nu en dan ook de temperatuur a;s "tempc:{"id":"A4:C1:38:D5:E9:F7","name":"LYWSD03MMC","rssi":-82,"servicedata":"30585b0501f7e9d538c1a4280100"}

code:
1
2
3
4
5
6
var idx_no = 412
var temp = msg.payload.tempc;

msg.payload = `{\n "command":"udevice","idx" : ${idx_no}, "svalue" : "${temp}"\n}`;

return msg;


Bovenstaand mijn function in de flow, maar als er geen temperatuur is dan geeft hij onderstaande door en heb ik dus 0 graden in Domoticz.

code:
1
2
3
{
 "command":"udevice","idx" : 412, "svalue" : "undefined"
}


De vraag: hoe kan ik het aanpassen dat Node-Red alleen de temperatuur door geeft, wanneer hij dit ook daadwerkelijk meet.

https://www.fam-oldenburger.nl/category/domotica/


Acties:
  • 0 Henk 'm!

  • Ernie4President
  • Registratie: Januari 2020
  • Laatst online: 07-07-2022
Al een tijdje probeer ik een notificatie flow te maken voor de wasmachine/vaatwasser.
Hiervoor heb ik de flow van @Koepert gebruikt als voorbeeld.

Afbeeldingslocatie: https://tweakers.net/i/enIy1ylXl4OuKh-1NDHW0sANPx4=/800x/filters:strip_exif()/f/image/5QfT1yZob54kx9UmWbvqOuBc.png?f=fotoalbum_large

De eerste notificatie werk prima, als de wasmachine aangaat, krijg ik netjes een melding. De bedoeling is om een notificatie te krijgen als de wasmachine klaar is, maar ik wordt helemaal plat gespammed met status update berichtjes.

Ik heb zitten spelen met settings in de power-monitor node, op basis van de grafiek die ik uit Grafana haal. Ook nog wat debug nodes aangemaakt. Maar krijg niet 't gewenste resultaat |:(

code:
1
[{"id":"dff929b9b45447f7","type":"tab","label":"Wasmachine","disabled":false,"info":"","env":[]},{"id":"6d6f237f883b9539","type":"api-call-service","z":"dff929b9b45447f7","name":"Notify René","server":"204a1fa4.03274","version":5,"debugenabled":false,"domain":"notify","service":"mobile_app_rene_iphone","areaId":[],"deviceId":[],"entityId":[],"data":"{\t   \"message\": msg.payload,\t   \"data\": {\t       \"push\": {\t           \"badge\": 5,\t           \"category\": \"test\"     \t       }   \t   } \t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","x":1230,"y":140,"wires":[[]]},{"id":"c6df971908f6476e","type":"server-state-changed","z":"dff929b9b45447f7","name":"Wasmachine","server":"204a1fa4.03274","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.wasmachine_vermogen","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"num","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"event","propertyType":"msg","value":"wasmachine","valueType":"str"}],"x":150,"y":140,"wires":[["22a0149152339b15"]]},{"id":"22a0149152339b15","type":"power-monitor","z":"dff929b9b45447f7","name":"Energie","startthreshold":"250","stopthreshold":"2.5","startafter":"1","stopafter":"1","x":360,"y":140,"wires":[["a2bc023eb8a31444"]]},{"id":"9e023dd30659b556","type":"template","z":"dff929b9b45447f7","name":"Start","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De wasmachine staat aan!","output":"str","x":970,"y":120,"wires":[["6d6f237f883b9539"]]},{"id":"a2bc023eb8a31444","type":"switch","z":"dff929b9b45447f7","name":"Running - Stop","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"running","vt":"str"},{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":560,"y":140,"wires":[["9e023dd30659b556"],["3154d68292d44d13"]]},{"id":"3154d68292d44d13","type":"function","z":"dff929b9b45447f7","name":"Pre-process","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = Math.round(msg.payload.energy * 0.23);\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":180,"wires":[["db156ee2a89927f8"]]},{"id":"db156ee2a89927f8","type":"template","z":"dff929b9b45447f7","name":"Bericht verbruik","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De wasmachine is klaar.\nTijdsduur: {{ payload.time }} minuten.\nTotale energie: {{ payload.energy }} kWh.\nKosten: € {{ payload.cost }}","output":"str","x":980,"y":180,"wires":[["6d6f237f883b9539"]]},{"id":"204a1fa4.03274","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30"}]

Help!

Acties:
  • +1 Henk 'm!

  • GORby
  • Registratie: Januari 2002
  • Laatst online: 08-06 15:04
@Ernie4President Is dat niet opgelost als je voor de switch node een filter (rbe) node zet, die alleen een bericht doorgeeft wanneer de waarde van payload.event wijzigt?

Acties:
  • +1 Henk 'm!

  • GORby
  • Registratie: Januari 2002
  • Laatst online: 08-06 15:04
BazemanKM schreef op maandag 4 april 2022 @ 21:26:
Hallo,

Ik gebruik OpenMQTTGateway_ESP32_OLM_GTWE om BLE naar MQTT te krijgen.

Ik heb een LYWSD03MMC thermometer en wil de temperatuur daarvan via Node-Red naar Domoticz sturen.

In MQTT komt dit bericht binnen en zo nu en dan ook de temperatuur a;s "tempc:{"id":"A4:C1:38:D5:E9:F7","name":"LYWSD03MMC","rssi":-82,"servicedata":"30585b0501f7e9d538c1a4280100"}

code:
1
2
3
4
5
6
var idx_no = 412
var temp = msg.payload.tempc;

msg.payload = `{\n "command":"udevice","idx" : ${idx_no}, "svalue" : "${temp}"\n}`;

return msg;


Bovenstaand mijn function in de flow, maar als er geen temperatuur is dan geeft hij onderstaande door en heb ik dus 0 graden in Domoticz.

code:
1
2
3
{
 "command":"udevice","idx" : 412, "svalue" : "undefined"
}


De vraag: hoe kan ik het aanpassen dat Node-Red alleen de temperatuur door geeft, wanneer hij dit ook daadwerkelijk meet.
Een switch node ertussen steken, waarop je gaat controleren of je temperatuur verschillend is van "undefined".

Acties:
  • +1 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Ernie4President schreef op woensdag 6 april 2022 @ 12:48:
Al een tijdje probeer ik een notificatie flow te maken voor de wasmachine/vaatwasser.
Hiervoor heb ik de flow van @Koepert gebruikt als voorbeeld.

[Afbeelding]

De eerste notificatie werk prima, als de wasmachine aangaat, krijg ik netjes een melding. De bedoeling is om een notificatie te krijgen als de wasmachine klaar is, maar ik wordt helemaal plat gespammed met status update berichtjes.

Ik heb zitten spelen met settings in de power-monitor node, op basis van de grafiek die ik uit Grafana haal. Ook nog wat debug nodes aangemaakt. Maar krijg niet 't gewenste resultaat |:(

code:
1
[{"id":"dff929b9b45447f7","type":"tab","label":"Wasmachine","disabled":false,"info":"","env":[]},{"id":"6d6f237f883b9539","type":"api-call-service","z":"dff929b9b45447f7","name":"Notify René","server":"204a1fa4.03274","version":5,"debugenabled":false,"domain":"notify","service":"mobile_app_rene_iphone","areaId":[],"deviceId":[],"entityId":[],"data":"{\t   \"message\": msg.payload,\t   \"data\": {\t       \"push\": {\t           \"badge\": 5,\t           \"category\": \"test\"     \t       }   \t   } \t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"data"}],"queue":"none","x":1230,"y":140,"wires":[[]]},{"id":"c6df971908f6476e","type":"server-state-changed","z":"dff929b9b45447f7","name":"Wasmachine","server":"204a1fa4.03274","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.wasmachine_vermogen","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"num","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"event","propertyType":"msg","value":"wasmachine","valueType":"str"}],"x":150,"y":140,"wires":[["22a0149152339b15"]]},{"id":"22a0149152339b15","type":"power-monitor","z":"dff929b9b45447f7","name":"Energie","startthreshold":"250","stopthreshold":"2.5","startafter":"1","stopafter":"1","x":360,"y":140,"wires":[["a2bc023eb8a31444"]]},{"id":"9e023dd30659b556","type":"template","z":"dff929b9b45447f7","name":"Start","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De wasmachine staat aan!","output":"str","x":970,"y":120,"wires":[["6d6f237f883b9539"]]},{"id":"a2bc023eb8a31444","type":"switch","z":"dff929b9b45447f7","name":"Running - Stop","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"running","vt":"str"},{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":560,"y":140,"wires":[["9e023dd30659b556"],["3154d68292d44d13"]]},{"id":"3154d68292d44d13","type":"function","z":"dff929b9b45447f7","name":"Pre-process","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = Math.round(msg.payload.energy * 0.23);\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":180,"wires":[["db156ee2a89927f8"]]},{"id":"db156ee2a89927f8","type":"template","z":"dff929b9b45447f7","name":"Bericht verbruik","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De wasmachine is klaar.\nTijdsduur: {{ payload.time }} minuten.\nTotale energie: {{ payload.energy }} kWh.\nKosten: € {{ payload.cost }}","output":"str","x":980,"y":180,"wires":[["6d6f237f883b9539"]]},{"id":"204a1fa4.03274","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30"}]

Help!
Er zijn meerdere wegen naar Rome..de suggestie van @GORby zou kunnen.

(Die van mij is ook niet het 'origineel' overigens..) Daarbij is die van mij is alweer gewijzigd. In begin werd ik ook redelijk gespamd namelijk. Dat is heel veel puzzelen met de waardes geweest, maar op een gegeven moment kwam ik er achter dat de werking van de power monitor node nogal gewijzigd is. Ik heb er nu een switch node tussen die een filter is op de verschillende berichten die die powermonitor node uitgeeft (met een debug node eraan kwam ik daar achter).


Dus heb ik nu NA de power monitor een switch die 4 statussen checkt in msg.payload.event.

- start
- pre-start
- running
- stop

start en prestart gaan naar mijn 'startbericht' template node, en alleen stop gaat naar mijn pre-process node.

Enige moment dat dit nog wel eens misgaat is bij een 40graden wolwas, daar zit een dip in het programma waardoor ik soms halverwege al een 'klaar' melding met direct erna een start melding krijg. Dat is vast te fixen door de powermonitor weer naar 2 berichten oid te zetten. Maar dat gebeurd zelden, dus laat ik het maar zo.. Droger heb ik nog steeds niet lekker trouwens, die dipt ook dermate vaak dat ik OF pas na n uur melding van STOP krijg, of tijdens het programma 3 a 5 keer 'te vaak'..

Mijn stop threshold is overigens nog steeds 0 met 1 message.


JSON:
1
[{"id":"080777dbf8728789","type":"function","z":"42bc3ba1a0a81070","name":"Pre-process","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = Math.round(msg.payload.energy * 16.66) / 100;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":280,"wires":[["076c0bbf2a80dced"]]},{"id":"dfbbea22aa7670a1","type":"power-monitor","z":"42bc3ba1a0a81070","name":"wasmachine","startthreshold":"50","stopthreshold":0,"startafter":1,"stopafter":"1","x":370,"y":200,"wires":[["f7786fb0a392489c"]]},{"id":"6d727bf3e7344e3f","type":"power-monitor","z":"42bc3ba1a0a81070","name":"droger","startthreshold":"50","stopthreshold":0,"startafter":1,"stopafter":"1","x":350,"y":320,"wires":[["f7786fb0a392489c"]]},{"id":"f7786fb0a392489c","type":"switch","z":"42bc3ba1a0a81070","name":"Was & Droog","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"},{"t":"eq","v":"pre-start","vt":"str"},{"t":"eq","v":"running","vt":"str"},{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":630,"y":260,"wires":[["fb4b1bebacf5cb81","eb89cb945a4eb47e"],["fb4b1bebacf5cb81","eb89cb945a4eb47e"],[],["080777dbf8728789","fb4b1bebacf5cb81"]]},{"id":"eb89cb945a4eb47e","type":"template","z":"42bc3ba1a0a81070","name":"Bericht was/droog","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De {{payload.name}} is begonnen","output":"str","x":950,"y":200,"wires":[["7d253ff43ba0f6b7"]]},{"id":"af198b7fd08c250f","type":"inject","z":"42bc3ba1a0a81070","name":"Manual Stop","props":[{"p":"payload.event","v":"stop","vt":"str"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":370,"y":260,"wires":[["f7786fb0a392489c"]]}]

Acties:
  • +2 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Ernie4President schreef op woensdag 6 april 2022 @ 12:48:


Ik heb zitten spelen met settings in de power-monitor node, op basis van de grafiek die ik uit Grafana haal. Ook nog wat debug nodes aangemaakt. Maar krijg niet 't gewenste resultaat |:(
Koepert schreef op woensdag 6 april 2022 @ 13:20:
[...]

Er zijn meerdere wegen naar Rome..de suggestie van @GORby zou kunnen.
Dit is mijn weg geweest

Voor de wasmachine en droger flow was ik ook aan het stuntelen geweest ivm de extra meldingen terwijl de was of droog nog niet klaar was.
had op github nog een suggesties gedaan van de power monitor om die dips in de cyclus goed op te vangen maar volgens mij is dat nog steeds niet gedaan.

Met deze flow krijg je keurig 1 melding als de wasmachine aangaat boven de 100W (kan soms even paar minuten duren maar dat geeft niet) en maar 1 melding als deze echt uit gaat.

Daarna krijg ik een telegram bericht als de wasmachine klaar is met de tarief berekening van die was
Je moet alleen even handmatig de waardes invullen. Zal vast uit homeassistant gehaald kunnen worden van het energy dashboard maar daar heb ik nog geen tijd voor gehad hoe en wat.

Ziet er dan zo ongeveer uit
Afbeeldingslocatie: https://tweakers.net/i/k1xKed9_nJjx_nSF4ec0guH60mM=/x800/filters:strip_exif()/f/image/WQ7hvuSHGaIoojiiv4v9L6Fx.png?f=fotoalbum_large

De droger gaat boven de 65w een melding versturen en dat gebeurt altijd direct.

Ik schakel ook na een paar minuten de wall plug uit

code:
1
[{"id":"86d03865b783baa4","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"54e8e4ceb882292a","type":"switch","z":"86d03865b783baa4","name":"event stop","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":495,"y":122,"wires":[["6cca84e9bd0ed5e2"]]},{"id":"62365cb1265db8df","type":"power-monitor","z":"86d03865b783baa4","name":"Wasmachine","startthreshold":"100","stopthreshold":"0","startafter":"1","stopafter":"1","x":295,"y":122,"wires":[["54e8e4ceb882292a","4611ad116c763b72"]]},{"id":"fcd954d5ee0d1640","type":"telegram sender","z":"86d03865b783baa4","name":"Person 1 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1225,"y":102,"wires":[[]]},{"id":"6cca84e9bd0ed5e2","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = (msg.payload.energy * 0.211356).toFixed(2);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":675,"y":122,"wires":[["b6ebf1b5661e0662"]]},{"id":"b6ebf1b5661e0662","type":"template","z":"86d03865b783baa4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De {{ payload.name }} is klaar\nTotale tijd: {{ payload.time }} min.\nTotaal vebruik : {{ payload.energy }} kWh\nKosten wasbeurt: € {{ payload.cost }}","output":"str","x":835,"y":122,"wires":[["4784cce703c16499","71d2f548552af119"]]},{"id":"ee1d57c48ee3a0a2","type":"server-state-changed","z":"86d03865b783baa4","name":"Wasmachine","server":"85cb4144.a30f7","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.wasmachine_sensor_current","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"num","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":95,"y":122,"wires":[["62365cb1265db8df","aa30948cb35a3b14"]]},{"id":"4784cce703c16499","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":122,"wires":[["fcd954d5ee0d1640"]]},{"id":"4611ad116c763b72","type":"switch","z":"86d03865b783baa4","name":"start","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":455,"y":82,"wires":[["56be64bac961135a","05bb1cfc6c203b96"]]},{"id":"56be64bac961135a","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Wasmachine is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":82,"wires":[["fcd954d5ee0d1640"]]},{"id":"b92662a4b8803485","type":"telegram sender","z":"86d03865b783baa4","name":"Person 2 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1235,"y":202,"wires":[[]]},{"id":"05bb1cfc6c203b96","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Wasmachine is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":182,"wires":[["b92662a4b8803485"]]},{"id":"71d2f548552af119","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":222,"wires":[["b92662a4b8803485"]]},{"id":"38691b1a5b5fb43b","type":"switch","z":"86d03865b783baa4","name":"event stop","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":495,"y":442,"wires":[["7bed4be2f1db3b55"]]},{"id":"c54ea069540194da","type":"power-monitor","z":"86d03865b783baa4","name":"Droger","startthreshold":"65","stopthreshold":"0","startafter":"1","stopafter":"1","x":255,"y":442,"wires":[["38691b1a5b5fb43b","23b32ac81314956c"]]},{"id":"d771506eeb3b6aa6","type":"telegram sender","z":"86d03865b783baa4","name":"Person 1 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1225,"y":422,"wires":[[]]},{"id":"7bed4be2f1db3b55","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = (msg.payload.energy * 0.211356).toFixed(2);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":675,"y":442,"wires":[["d8a82c6a6090aeb9"]]},{"id":"d8a82c6a6090aeb9","type":"template","z":"86d03865b783baa4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De {{ payload.name }} is klaar\nTotale tijd: {{ payload.time }} min.\nTotaal vebruik : {{ payload.energy }} kWh\nKosten wasbeurt: € {{ payload.cost }}","output":"str","x":835,"y":442,"wires":[["653f9128e9d2d495","55e5bb284d60eaca"]]},{"id":"04e1fcad0e06f202","type":"server-state-changed","z":"86d03865b783baa4","name":"Droger","server":"85cb4144.a30f7","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.droger_sensor_current","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"num","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":70,"y":440,"wires":[["c54ea069540194da","25db866cc0bcef6a"]]},{"id":"653f9128e9d2d495","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":442,"wires":[["d771506eeb3b6aa6"]]},{"id":"23b32ac81314956c","type":"switch","z":"86d03865b783baa4","name":"start","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":455,"y":402,"wires":[["ecf7563117ddc5aa","82fac7f3dcbb6726"]]},{"id":"ecf7563117ddc5aa","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Droger is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":402,"wires":[["d771506eeb3b6aa6"]]},{"id":"eb31c2f1688ae438","type":"telegram sender","z":"86d03865b783baa4","name":"Person 2 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1235,"y":522,"wires":[[]]},{"id":"82fac7f3dcbb6726","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Droger is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":502,"wires":[["eb31c2f1688ae438"]]},{"id":"55e5bb284d60eaca","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":542,"wires":[["eb31c2f1688ae438"]]},{"id":"f7e9653250c37eb3","type":"api-call-service","z":"86d03865b783baa4","name":"Wasmachine Off","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.was_ruimte_wasmachine_726"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":715,"y":182,"wires":[[]]},{"id":"aa30948cb35a3b14","type":"switch","z":"86d03865b783baa4","name":"< of > 3W ?","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"3","vt":"num"},{"t":"gte","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":295,"y":182,"wires":[["fdfed324b0694403"],["f1ee9b636097c244"]],"outputLabels":["Si","No"]},{"id":"fdfed324b0694403","type":"trigger","z":"86d03865b783baa4","name":"","op1":"","op2":"Off","op1type":"nul","op2type":"str","duration":"5","extend":false,"overrideDelay":false,"units":"min","reset":"On","bytopic":"all","topic":"topic","outputs":1,"x":495,"y":182,"wires":[["f7e9653250c37eb3"]]},{"id":"f1ee9b636097c244","type":"change","z":"86d03865b783baa4","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"On","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":515,"y":222,"wires":[["fdfed324b0694403"]]},{"id":"45e9a8122bacdbaa","type":"api-call-service","z":"86d03865b783baa4","name":"Droger Off","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.was_ruimte_droger_252"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":695,"y":502,"wires":[[]]},{"id":"25db866cc0bcef6a","type":"switch","z":"86d03865b783baa4","name":"< of > 3W ?","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"3","vt":"num"},{"t":"gte","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":295,"y":502,"wires":[["fdd682afdb5ecc38"],["3495aa0eca45cf11"]],"outputLabels":["Si","No"]},{"id":"fdd682afdb5ecc38","type":"trigger","z":"86d03865b783baa4","name":"","op1":"","op2":"Off","op1type":"nul","op2type":"str","duration":"5","extend":false,"overrideDelay":false,"units":"min","reset":"On","bytopic":"all","topic":"topic","outputs":1,"x":495,"y":502,"wires":[["45e9a8122bacdbaa"]]},{"id":"3495aa0eca45cf11","type":"change","z":"86d03865b783baa4","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"On","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":515,"y":542,"wires":[["fdd682afdb5ecc38"]]},{"id":"b20ac9ad25ba7495","type":"comment","z":"86d03865b783baa4","name":"Droger Power Monitor en auto Off","info":"","x":150,"y":360,"wires":[]},{"id":"980860f72f9eb79c","type":"comment","z":"86d03865b783baa4","name":"Wasmachine Power Monitor en auto Off","info":"","x":170,"y":60,"wires":[]},{"id":"85cb4144.a30f7","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]



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

[ Voor 9% gewijzigd door d-vine op 06-04-2022 13:58 ]


Acties:
  • +1 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Ziet er goed uit. Die gaan we eens testen :)

Alleen dat bij de droger je ook kosten voor een wasbeurt hebt ;)

[ Voor 43% gewijzigd door Koepert op 06-04-2022 14:01 ]


Acties:
  • 0 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Koepert schreef op woensdag 6 april 2022 @ 13:59:

Alleen dat bij de droger je ook kosten voor een wasbeurt hebt ;)
kosten zijn gescheiden maak je maar geen zorgen, veel was gedaan op die dag meldingen lopen in elkaar over ;)
was maar klein gedeelte van de telegram meldingen

[ Voor 8% gewijzigd door d-vine op 06-04-2022 14:09 ]


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
d-vine schreef op woensdag 6 april 2022 @ 14:08:
[...]


kosten zijn gescheiden maak je maar geen zorgen, veel was gedaan op die dag meldingen lopen in elkaar over ;)
was maar klein gedeelte van de telegram meldingen
nee, k bedoelde dat je in je melding dat de droger klaar is nog hebt staan: Kosten WASbeurt..

Acties:
  • +1 Henk 'm!

  • Ernie4President
  • Registratie: Januari 2020
  • Laatst online: 07-07-2022
Nice! Deze ga ik eens proberen!
Leuk om te zien dat de twee flows in essentie erg op elkaar lijken.

Acties:
  • 0 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Koepert schreef op woensdag 6 april 2022 @ 14:22:
[...]


nee, k bedoelde dat je in je melding dat de droger klaar is nog hebt staan: Kosten WASbeurt..
scherp moest ik nog aanpassing haha

Acties:
  • +1 Henk 'm!

  • GORby
  • Registratie: Januari 2002
  • Laatst online: 08-06 15:04
d-vine schreef op woensdag 6 april 2022 @ 13:45:
[...]


[...]


Dit is mijn weg geweest

Voor de wasmachine en droger flow was ik ook aan het stuntelen geweest ivm de extra meldingen terwijl de was of droog nog niet klaar was.
had op github nog een suggesties gedaan van de power monitor om die dips in de cyclus goed op te vangen maar volgens mij is dat nog steeds niet gedaan.

Met deze flow krijg je keurig 1 melding als de wasmachine aangaat boven de 100W (kan soms even paar minuten duren maar dat geeft niet) en maar 1 melding als deze echt uit gaat.

Daarna krijg ik een telegram bericht als de wasmachine klaar is met de tarief berekening van die was
Je moet alleen even handmatig de waardes invullen. Zal vast uit homeassistant gehaald kunnen worden van het energy dashboard maar daar heb ik nog geen tijd voor gehad hoe en wat.

Ziet er dan zo ongeveer uit
[Afbeelding]

De droger gaat boven de 65w een melding versturen en dat gebeurt altijd direct.

Ik schakel ook na een paar minuten de wall plug uit

code:
1
[{"id":"86d03865b783baa4","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"54e8e4ceb882292a","type":"switch","z":"86d03865b783baa4","name":"event stop","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":495,"y":122,"wires":[["6cca84e9bd0ed5e2"]]},{"id":"62365cb1265db8df","type":"power-monitor","z":"86d03865b783baa4","name":"Wasmachine","startthreshold":"100","stopthreshold":"0","startafter":"1","stopafter":"1","x":295,"y":122,"wires":[["54e8e4ceb882292a","4611ad116c763b72"]]},{"id":"fcd954d5ee0d1640","type":"telegram sender","z":"86d03865b783baa4","name":"Person 1 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1225,"y":102,"wires":[[]]},{"id":"6cca84e9bd0ed5e2","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = (msg.payload.energy * 0.211356).toFixed(2);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":675,"y":122,"wires":[["b6ebf1b5661e0662"]]},{"id":"b6ebf1b5661e0662","type":"template","z":"86d03865b783baa4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De {{ payload.name }} is klaar\nTotale tijd: {{ payload.time }} min.\nTotaal vebruik : {{ payload.energy }} kWh\nKosten wasbeurt: € {{ payload.cost }}","output":"str","x":835,"y":122,"wires":[["4784cce703c16499","71d2f548552af119"]]},{"id":"ee1d57c48ee3a0a2","type":"server-state-changed","z":"86d03865b783baa4","name":"Wasmachine","server":"85cb4144.a30f7","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.wasmachine_sensor_current","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"num","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":95,"y":122,"wires":[["62365cb1265db8df","aa30948cb35a3b14"]]},{"id":"4784cce703c16499","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":122,"wires":[["fcd954d5ee0d1640"]]},{"id":"4611ad116c763b72","type":"switch","z":"86d03865b783baa4","name":"start","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":455,"y":82,"wires":[["56be64bac961135a","05bb1cfc6c203b96"]]},{"id":"56be64bac961135a","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Wasmachine is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":82,"wires":[["fcd954d5ee0d1640"]]},{"id":"b92662a4b8803485","type":"telegram sender","z":"86d03865b783baa4","name":"Person 2 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1235,"y":202,"wires":[[]]},{"id":"05bb1cfc6c203b96","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Wasmachine is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":182,"wires":[["b92662a4b8803485"]]},{"id":"71d2f548552af119","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":222,"wires":[["b92662a4b8803485"]]},{"id":"38691b1a5b5fb43b","type":"switch","z":"86d03865b783baa4","name":"event stop","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":495,"y":442,"wires":[["7bed4be2f1db3b55"]]},{"id":"c54ea069540194da","type":"power-monitor","z":"86d03865b783baa4","name":"Droger","startthreshold":"65","stopthreshold":"0","startafter":"1","stopafter":"1","x":255,"y":442,"wires":[["38691b1a5b5fb43b","23b32ac81314956c"]]},{"id":"d771506eeb3b6aa6","type":"telegram sender","z":"86d03865b783baa4","name":"Person 1 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1225,"y":422,"wires":[[]]},{"id":"7bed4be2f1db3b55","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = (msg.payload.energy * 0.211356).toFixed(2);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":675,"y":442,"wires":[["d8a82c6a6090aeb9"]]},{"id":"d8a82c6a6090aeb9","type":"template","z":"86d03865b783baa4","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De {{ payload.name }} is klaar\nTotale tijd: {{ payload.time }} min.\nTotaal vebruik : {{ payload.energy }} kWh\nKosten wasbeurt: € {{ payload.cost }}","output":"str","x":835,"y":442,"wires":[["653f9128e9d2d495","55e5bb284d60eaca"]]},{"id":"04e1fcad0e06f202","type":"server-state-changed","z":"86d03865b783baa4","name":"Droger","server":"85cb4144.a30f7","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.droger_sensor_current","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"num","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":70,"y":440,"wires":[["c54ea069540194da","25db866cc0bcef6a"]]},{"id":"653f9128e9d2d495","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":442,"wires":[["d771506eeb3b6aa6"]]},{"id":"23b32ac81314956c","type":"switch","z":"86d03865b783baa4","name":"start","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":455,"y":402,"wires":[["ecf7563117ddc5aa","82fac7f3dcbb6726"]]},{"id":"ecf7563117ddc5aa","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Droger is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":402,"wires":[["d771506eeb3b6aa6"]]},{"id":"eb31c2f1688ae438","type":"telegram sender","z":"86d03865b783baa4","name":"Person 2 telegram","bot":"","haserroroutput":false,"outputs":1,"x":1235,"y":522,"wires":[[]]},{"id":"82fac7f3dcbb6726","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload = {\n    \"chatId\": \"********\", \n    \"type\":\"message\", \n    \"content\":\n    \"**Droger is AAN**\"\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":502,"wires":[["eb31c2f1688ae438"]]},{"id":"55e5bb284d60eaca","type":"function","z":"86d03865b783baa4","name":"","func":"msg.payload =\n{\n    \"chatId\": \"********\", \n    type: 'message',\n    content: msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1015,"y":542,"wires":[["eb31c2f1688ae438"]]},{"id":"f7e9653250c37eb3","type":"api-call-service","z":"86d03865b783baa4","name":"Wasmachine Off","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.was_ruimte_wasmachine_726"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":715,"y":182,"wires":[[]]},{"id":"aa30948cb35a3b14","type":"switch","z":"86d03865b783baa4","name":"< of > 3W ?","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"3","vt":"num"},{"t":"gte","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":295,"y":182,"wires":[["fdfed324b0694403"],["f1ee9b636097c244"]],"outputLabels":["Si","No"]},{"id":"fdfed324b0694403","type":"trigger","z":"86d03865b783baa4","name":"","op1":"","op2":"Off","op1type":"nul","op2type":"str","duration":"5","extend":false,"overrideDelay":false,"units":"min","reset":"On","bytopic":"all","topic":"topic","outputs":1,"x":495,"y":182,"wires":[["f7e9653250c37eb3"]]},{"id":"f1ee9b636097c244","type":"change","z":"86d03865b783baa4","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"On","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":515,"y":222,"wires":[["fdfed324b0694403"]]},{"id":"45e9a8122bacdbaa","type":"api-call-service","z":"86d03865b783baa4","name":"Droger Off","server":"85cb4144.a30f7","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.was_ruimte_droger_252"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":695,"y":502,"wires":[[]]},{"id":"25db866cc0bcef6a","type":"switch","z":"86d03865b783baa4","name":"< of > 3W ?","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"3","vt":"num"},{"t":"gte","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":295,"y":502,"wires":[["fdd682afdb5ecc38"],["3495aa0eca45cf11"]],"outputLabels":["Si","No"]},{"id":"fdd682afdb5ecc38","type":"trigger","z":"86d03865b783baa4","name":"","op1":"","op2":"Off","op1type":"nul","op2type":"str","duration":"5","extend":false,"overrideDelay":false,"units":"min","reset":"On","bytopic":"all","topic":"topic","outputs":1,"x":495,"y":502,"wires":[["45e9a8122bacdbaa"]]},{"id":"3495aa0eca45cf11","type":"change","z":"86d03865b783baa4","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"On","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":515,"y":542,"wires":[["fdd682afdb5ecc38"]]},{"id":"b20ac9ad25ba7495","type":"comment","z":"86d03865b783baa4","name":"Droger Power Monitor en auto Off","info":"","x":150,"y":360,"wires":[]},{"id":"980860f72f9eb79c","type":"comment","z":"86d03865b783baa4","name":"Wasmachine Power Monitor en auto Off","info":"","x":170,"y":60,"wires":[]},{"id":"85cb4144.a30f7","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]



[Afbeelding]
Voor mijn situatie thuis heb ik het anders aangepakt dan wat ik hier voorstel. Ik werk zelf met Shelly pluggen die ik ga pollen en niet met power monitor of zo. Die data wordt dan enerzijds opgeslaan in InfluxDB en verder wordt die gebruikt om meldingen te geven (Pushover + melding via Google Home via text to speech) en ook om de pluggen op basis van een paar vorwaarden aan en uit te schakelen:
- delayed start via power plug om bijvoorbeeld te wassen bij voldoende productie PV
- uitschakelen van sommige dingen wanneer er geen nuttig verbruik meer is

Om dubbele meldingen te voorkomen, werk ik met verschillende fasen van een programma (vb: opwarmen, wassen, spoelen, drogen, klaar) en geef ik enkel 1x een melding wanneer een toestel naar fase "klaar" gaat. De huidige toestand van het toestel is (waar mogelijk) te zien in de Node-Red GUI.

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

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

Acties:
  • 0 Henk 'm!

  • prekz
  • Registratie: September 2008
  • Laatst online: 06:02
Gebruikt hier iemand iets om de seizoenen te regelen voor lichten/gordijnen/rolluiken etc?
Ik ben 2x per jaar mijn tijden aan het passen om daar een klein beetje rekening mee te houden (winter/zomer), maar iets wat dit kan automatiseren heel graag.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
prekz schreef op donderdag 7 april 2022 @ 19:27:
Gebruikt hier iemand iets om de seizoenen te regelen voor lichten/gordijnen/rolluiken etc?
Ik ben 2x per jaar mijn tijden aan het passen om daar een klein beetje rekening mee te houden (winter/zomer), maar iets wat dit kan automatiseren heel graag.
Ik stel ook graag vragen om specifieke use-cases te leren (zie hierboven...) maar waarom niet gewoon op basis stand van de zon icm een eventuele offset?

Anders wellicht deze? https://discourse.nodered...ode-based-on-season/19177

Acties:
  • 0 Henk 'm!

  • prekz
  • Registratie: September 2008
  • Laatst online: 06:02
Koepert schreef op donderdag 7 april 2022 @ 19:30:
[...]


Ik stel ook graag vragen om specifieke use-cases te leren (zie hierboven...) maar waarom niet gewoon op basis stand van de zon icm een eventuele offset?

Anders wellicht deze? https://discourse.nodered...ode-based-on-season/19177
Met de de stand van de zon ben ik juist aan het klooien. Al twijfel ik of de offset (=vaste waarde) voor mij helpt.
Gordijnen moeten bij zonsondergang dicht gaan, maar ze mogen niet later dichtgaan als 20:00 (voorbeeld).
Dus in mijn geval is de offset een variabele waarde.

Dus in de lente/herfst/zomer mogen de gordijnen tot uiterlijk 20:00 open blijven. En in andere gevallen sluiten ze eerder ivm de stand van de zon.

Acties:
  • +1 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
prekz schreef op donderdag 7 april 2022 @ 20:16:
[...]


Met de de stand van de zon ben ik juist aan het klooien. Al twijfel ik of de offset (=vaste waarde) voor mij helpt.
Gordijnen moeten bij zonsondergang dicht gaan, maar ze mogen niet later dichtgaan als 20:00 (voorbeeld).
Dus in mijn geval is de offset een variabele waarde.

Dus in de lente/herfst/zomer mogen de gordijnen tot uiterlijk 20:00 open blijven. En in andere gevallen sluiten ze eerder ivm de stand van de zon.
Kun je dan niet beter je automation uit 2 delen laten bestaan?

Stand zon = X —-> gordijnen dicht
Tijd is 19:55? —> gordijnen dicht

Dus een sun elevation en een time check node die naar de zelfde actie verwijzen.

Acties:
  • 0 Henk 'm!
@prekz Dan maak je toch 2 triggers :?

Mijn tuinverlichting moet aangaan als de zon ondergaat, maar niet als dat vóór 16:30 gebeurd, want dan is er toch niemand thuis. Maar áls die ondergang voor 16:30 gebeurd, forceer ik hem dus alsnog door om 16:30 een trigger te activeren, die vervolgens wel checkt of de zon überhaupt al onder is. Anders gaat hij voor niets aan :+
Afbeeldingslocatie: https://images.lolgast.nl/uploads/big/8ba2b89b4e80c0009b9b95dd0590cd91.png

Acties:
  • 0 Henk 'm!

  • prekz
  • Registratie: September 2008
  • Laatst online: 06:02
Koepert schreef op donderdag 7 april 2022 @ 20:21:
[...]


Kun je dan niet beter je automation uit 2 delen laten bestaan?

Stand zon = X —-> gordijnen dicht
Tijd is 19:55? —> gordijnen dicht

Dus een sun elevation en een time check node die naar de zelfde actie verwijzen.
lol ik denk dat ik even te moeilijk aan het denken was |:( _/-\o_
Lijkt opgelost met een inject (time) node.

Afbeeldingslocatie: https://i.imgur.com/mbiA9vu.png

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
lolgast schreef op zaterdag 2 april 2022 @ 16:26:
@Koepert Ik zie dat ik het zelf niet eens meer wist en blijkbaar ben overgestapt naar hoe de luchtvochtigheid zich verhoudt tot andere kamers op dezelfde verdieping. Daarbij kan de ventilator alleen aan als de verlichting aanstaat (dat gáát wel eens fout als de zon schijnt :+ ) en als de verlichting uit is kan de fan alleen op de laagste stand en als de lamp langer dan 5 minuten uit is kan hij niet aan en als hij aanstaat, gaat hij op dat moment uit.
Om pendelgedrag te voorkomen mag de stand maximaal elke 2 minuten wijzigen (behalve door de verlichting, die overruled een en ander)
Dáárnaast heb ik een knop bij het bad die bij eenmalig indrukken instelt dat er iemand in bad ligt en de afzuiging daarmee niet op de hoogste stand kan (dat is best koud met de luchtverplaatsing). Als die knop dubbel wordt ingedrukt dimt de verlichting en daarmee wordt bepaald dat de afzuiging helemaal niet aan mag.

Volgens mij ben ik er dan wel :+

[Afbeelding]

Code in 'Bepaal 'stand''-node
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
let bad = flow.get("badkamer.bad_gebruikt")
let old = flow.get("badkamer.humidity");

function getState(h){
  const hassio = global.get('homeassistant')

  return parseFloat(hassio.hassIO.states[h].state).toFixed(1)
}

function getHumids(){
  hum = [];

  hum[0] = getState('sensor.nina_humidity');
  hum[1] = getState('sensor.slaapkamer_humidity');
  hum[2] = getState('sensor.babykamer_humidity');
  hum[3] = getState('sensor.badkamer_airquality_humidity');

  return hum;
}

function calc(){
  sum = 0;
  hum = getHumids()

  for( i = 0; i < hum.length; i++ ){
      sum += parseInt( hum[i] );
  }

  hum_avg = sum/hum.length;

  return Math.round((current / hum_avg * 100) - 100);
}

// Badknop gebruikt
if (msg.topic.includes("badschakelaar") === true){
    if (msg.payload.action === "double"){
        msg.stand = 0
    } else if (Math.round((old / hum_avg * 100) - 100) >= 3){
        msg.stand = 1
    } else {
        msg.stand = 0
    }
    flow.set("badkamer.bad_gebruikt","ja");
    node.status({text:"Bad in gebruik" + ". Stand: " + msg.stand});
    return msg
}

let current = (msg.payload.humidity).toFixed(1);
flow.set("badkamer.humidity",current);

if (bad === "ja") {
    node.status({text:"Bad in gebruik. " + calc()});
    if (calc() >= 3 && msg.data.attributes.brightness > 75) {
        msg.stand = 1;
        return msg;
    }
    msg.stand = 0;
    return msg;
}

node.status({text:"Current: " + current + " , Old: " + old});

let time = Date.now();
let hourOfDay = new Date(time).getHours();
if (hourOfDay >= 22 || hourOfDay <= 4){
    {return}
}

if (msg.light == "off"){
    // 5 minuten of meer?
    if (Math.round(msg.data.timeSinceChangedMs / 60000 > 5)){
        msg.stand = 0
        return msg}
    // Voorkom verhogen snelheid tijdens 5 minuten trigger
    else {return}
}

// Stijgend
if (old - current < 0){
    // Meer dan 8% toegenomen of 10% verschil op average
    if ((current - old) / old * 100 > 8 || calc() > 6){
        msg.stand = 2 }
    else if (calc() >= 3 && calc() <= 6){
        msg.stand = 1 }
    else {
        msg.stand = 0 }
} else {
// Dalend
    if (calc() > 3 && calc() <= 6){
        msg.stand = 1;
    } else if (calc() > 6){
        msg.stand = 2;
    } else {
        msg.stand = 0;
    }
}

return msg;
Ik ben hiermee aan t stoeien geweest maar krijg dit niet omgekat naar mijn situatie (mede vanwege ontbreken meerdere variabelen (andere sensoren/schakelaars/lampen met name..

Dus kom ik eigenlijk terug bij mijn initiele vraag:

Is het mogelijk te laten triggeren/testen op een AFNAME ipv een "beneden waarde X" van een sensor?

Want zowel de TEMP als de Humidity blijven vrij lang hoog, maar dalen wel. Voorbeeld dat mijn probleem schetst:

Gisteren ben ik om 22:00 - 22:15 u gaan douchen. (ongeveer dan)

Begin douche: Temp = 18 graden. Humid = 54%
Einde douche/Piek van temp + humid: Temp = 19,4 graden . Humid = 82,8%
Dal na douchen (+- 30 minuten NA piek) = Temp: 18.4 graden (blijft ook eigenlijk tot vanochtend zo)
Zelfde tijdsbestek Humid naar 65% en blijft ongeveer daar/zakt heel langzaam tot 55% vanochtend om 07u

Tijd die input_boolean aan heeft gestaan 0,75 uur.. (effectief denk ik 10minuten gedoucht)

Vandaag is mijn vrouw gaan douchen om 11:00 - 11:15 (ongeveer

Begin Douche: Temp = 18,6 graden graden Humid = 56%
Einde douche/Piek = Temp = 19,4 graden Humid = 87,8 %
Dal na douchen (ongeveer na +- 60min!!) Temp = 18,6 graden Humid is nog aan t dalen maar nu 75%.

Input_boolean: 1,40u aan.. K ben op t werk, dus kan niet zeggen hoe lang ze gedoucht heeft maar ZEKER niet zolang.


Kortom, te zien valt dat mijn vrouw langer maar vooral heter doucht..

In de huidige settings is de boolean 'douche aan' dus tot vannacht 00:10 aangebleven en is na douchen van mijn vrouw nu net uitgesprongen.. Kortom de periode AAN is veel te lang. Ik begrijp dat dit niet de meest betrouwbare methode gaat opleveren maar iets nauwkeuriger hoop ik toch wel. Op dit moment springt de boolean wederom weer aan namelijk.

Heb nu de High Humidity AAN op 65% gezet en de 2e "check" naar <80 gezet, dat helpt al iets, maar daarom hoop ik dus te kunnen testen op 'afname' ipv threshold.

Acties:
  • +2 Henk 'm!

  • Ernie4President
  • Registratie: Januari 2020
  • Laatst online: 07-07-2022
Koepert schreef op woensdag 6 april 2022 @ 13:20:
[...]


Er zijn meerdere wegen naar Rome..de suggestie van @GORby zou kunnen.

(Die van mij is ook niet het 'origineel' overigens..) Daarbij is die van mij is alweer gewijzigd. In begin werd ik ook redelijk gespamd namelijk. Dat is heel veel puzzelen met de waardes geweest, maar op een gegeven moment kwam ik er achter dat de werking van de power monitor node nogal gewijzigd is. Ik heb er nu een switch node tussen die een filter is op de verschillende berichten die die powermonitor node uitgeeft (met een debug node eraan kwam ik daar achter).


Dus heb ik nu NA de power monitor een switch die 4 statussen checkt in msg.payload.event.

- start
- pre-start
- running
- stop

start en prestart gaan naar mijn 'startbericht' template node, en alleen stop gaat naar mijn pre-process node.

Enige moment dat dit nog wel eens misgaat is bij een 40graden wolwas, daar zit een dip in het programma waardoor ik soms halverwege al een 'klaar' melding met direct erna een start melding krijg. Dat is vast te fixen door de powermonitor weer naar 2 berichten oid te zetten. Maar dat gebeurd zelden, dus laat ik het maar zo.. Droger heb ik nog steeds niet lekker trouwens, die dipt ook dermate vaak dat ik OF pas na n uur melding van STOP krijg, of tijdens het programma 3 a 5 keer 'te vaak'..

Mijn stop threshold is overigens nog steeds 0 met 1 message.


JSON:
1
[{"id":"080777dbf8728789","type":"function","z":"42bc3ba1a0a81070","name":"Pre-process","func":"msg.payload.time = Math.round(msg.payload.time / 60);\nmsg.payload.cost = Math.round(msg.payload.energy * 16.66) / 100;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":870,"y":280,"wires":[["076c0bbf2a80dced"]]},{"id":"dfbbea22aa7670a1","type":"power-monitor","z":"42bc3ba1a0a81070","name":"wasmachine","startthreshold":"50","stopthreshold":0,"startafter":1,"stopafter":"1","x":370,"y":200,"wires":[["f7786fb0a392489c"]]},{"id":"6d727bf3e7344e3f","type":"power-monitor","z":"42bc3ba1a0a81070","name":"droger","startthreshold":"50","stopthreshold":0,"startafter":1,"stopafter":"1","x":350,"y":320,"wires":[["f7786fb0a392489c"]]},{"id":"f7786fb0a392489c","type":"switch","z":"42bc3ba1a0a81070","name":"Was & Droog","property":"payload.event","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"},{"t":"eq","v":"pre-start","vt":"str"},{"t":"eq","v":"running","vt":"str"},{"t":"eq","v":"stop","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":630,"y":260,"wires":[["fb4b1bebacf5cb81","eb89cb945a4eb47e"],["fb4b1bebacf5cb81","eb89cb945a4eb47e"],[],["080777dbf8728789","fb4b1bebacf5cb81"]]},{"id":"eb89cb945a4eb47e","type":"template","z":"42bc3ba1a0a81070","name":"Bericht was/droog","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"De {{payload.name}} is begonnen","output":"str","x":950,"y":200,"wires":[["7d253ff43ba0f6b7"]]},{"id":"af198b7fd08c250f","type":"inject","z":"42bc3ba1a0a81070","name":"Manual Stop","props":[{"p":"payload.event","v":"stop","vt":"str"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":370,"y":260,"wires":[["f7786fb0a392489c"]]}]
Bedankt @Koepert & @d-vine ! _/-\o_

Ben helemaal happy :) Ik heb nog even moeten stoeien met de waarde van de powermonitor zodat ie op het juiste moment een bericht ' wasmachine klaar' gaf, maar da's nu ook gelukt. Bleek dat ik fout zat met msg.payload.event. Ipv daarvan heb ik nu gebruik gemaakt van msg.payload.event zoals @Koepert aangaf.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
Ernie4President schreef op donderdag 14 april 2022 @ 15:04:
[...]

Bleek dat ik fout zat met msg.payload.event. Ipv daarvan heb ik nu gebruik gemaakt van msg.payload.event zoals @Koepert aangaf.
Graag gedaan, mooi dat t werkt..maaruh.. je typt hier toch twee keer msg.payload.event of ben ik scheel?

Acties:
  • 0 Henk 'm!

  • Ernie4President
  • Registratie: Januari 2020
  • Laatst online: 07-07-2022
Koepert schreef op donderdag 14 april 2022 @ 15:25:
[...]

Graag gedaan, mooi dat t werkt..maaruh.. je typt hier toch twee keer msg.payload.event of ben ik scheel?
Klopt, goed gezien ;) foutje. Wat ik bedoelde: eerst keek ik alleen naar msg.payload, nu gebruik ik msg.payload.event

Acties:
  • 0 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Koepert schreef op woensdag 13 april 2022 @ 13:29:
[...]

Begin Douche: Temp = 18,6 graden graden Humid = 56%
Einde douche/Piek = Temp = 19,4 graden Humid = 87,8 %
Dal na douchen (ongeveer na +- 60min!!) Temp = 18,6 graden Humid is nog aan t dalen maar nu 75%.
Ik kan je niet helpen met je concrete vraag maar ik zat me wel te bedenken welke vochtsensor gebruik jij?

Zat me namelijk te bedenken dat ik 9 jaar geleden toen ik begon met Fibaro een van de eerste Multi sensoren van aeotec had gekocht voor beweging en vocht meting. En dat werkte voor geen meter omdat de vochtmeting maar weinig keren per uur kon meten. Of geen extra signaal kon geven hoger of lager dan X waarde.
En als ik het laag zette werkte het nog niet en waren de batterijen binnen no time op.

Destijds was een everspring (volgens mij niet meer te verkrijgen) voor mij de uitkomst.
De metingen waren veel beter, sneller en je had extra triggers die hij kon versturen.
Het is een beetje een lomp ding tegenwoordig maar het hangt in de hoek van onze badkamer en werkt perfect.

Maar misschien is je badkamer heel vochtig altijd en dan blijft het lastig.

Acties:
  • +1 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
d-vine schreef op maandag 18 april 2022 @ 09:15:
[...]


Ik kan je niet helpen met je concrete vraag maar ik zat me wel te bedenken welke vochtsensor gebruik jij?

Zat me namelijk te bedenken dat ik 9 jaar geleden toen ik begon met Fibaro een van de eerste Multi sensoren van aeotec had gekocht voor beweging en vocht meting. En dat werkte voor geen meter omdat de vochtmeting maar weinig keren per uur kon meten. Of geen extra signaal kon geven hoger of lager dan X waarde.
En als ik het laag zette werkte het nog niet en waren de batterijen binnen no time op.

Destijds was een everspring (volgens mij niet meer te verkrijgen) voor mij de uitkomst.
De metingen waren veel beter, sneller en je had extra triggers die hij kon versturen.
Het is een beetje een lomp ding tegenwoordig maar het hangt in de hoek van onze badkamer en werkt perfect.

Maar misschien is je badkamer heel vochtig altijd en dan blijft het lastig.
Aqara sensor: https://www.xiaomiproduct...n-vochtigheidssensor.html

Dus die zal ongetwijfeld niet t meest geschikt zijn. Dat accepteer ik voor nu, zoals aangegeven, gaat t mij vooral om het lerende aspect van hoe/of het mogelijk is te triggeren op een AFNAME ipv een onder X

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op maandag 18 april 2022 @ 09:34:
[...]


Aqara sensor: https://www.xiaomiproduct...n-vochtigheidssensor.html

Dus die zal ongetwijfeld niet t meest geschikt zijn. Dat accepteer ik voor nu, zoals aangegeven, gaat t mij vooral om het lerende aspect van hoe/of het mogelijk is te triggeren op een AFNAME ipv een onder X
Ik heb (nog) geen vochtigheidssensor, maar wat krijg je binnen van je sensor? Ook de oude state? Of alleen de nieuwe? Kun je misschien een screencapture maken van het msg object in de debug tab?

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op maandag 18 april 2022 @ 12:05:
[...]


Ik heb (nog) geen vochtigheidssensor, maar wat krijg je binnen van je sensor? Ook de oude state? Of alleen de nieuwe? Kun je misschien een screencapture maken van het msg object in de debug tab?
Er komen inderdaad een aantal dingen binnen. Kan nu ff geen screenshot maken, maar t volgende komt binnen:

- Payload: 41 (of welk percentage dan ook)
en data
JSON:
1
{"entity_id":"sensor.multi_sensor_2","old_state":{"entity_id":"sensor.multi_sensor_2","state":"40.9","attributes":{"state_class":"measurement","on":true,"unit_of_measurement":"%","device_class":"humidity","friendly_name":"Multi Sensor"},"last_changed":"2022-04-18T10:09:47.601898+00:00","last_updated":"2022-04-18T10:09:47.601898+00:00","context":{"id":"dc9dd0a8fec43b4c2790341190fc553a","parent_id":null,"user_id":null},"original_state":"40.9"},"new_state":{"entity_id":"sensor.multi_sensor_2","state":"41","attributes":{"state_class":"measurement","on":true,"unit_of_measurement":"%","device_class":"humidity","friendly_name":"Multi Sensor"},"last_changed":"2022-04-18T10:20:06.987959+00:00","last_updated":"2022-04-18T10:20:06.987959+00:00","context":{"id":"a02196b7045b9135542f317863cfacda","parent_id":null,"user_id":"b721d002302e4f0d87ac0bbc49c0d83c"},"original_state":"41","timeSinceChangedMs":6}}

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op maandag 18 april 2022 @ 12:23:
[...]


Er komen inderdaad een aantal dingen binnen. Kan nu ff geen screenshot maken, maar t volgende komt binnen:

- Payload: 41 (of welk percentage dan ook)
en data
JSON:
1
{"entity_id":"sensor.multi_sensor_2","old_state":{"entity_id":"sensor.multi_sensor_2","state":"40.9","attributes":{"state_class":"measurement","on":true,"unit_of_measurement":"%","device_class":"humidity","friendly_name":"Multi Sensor"},"last_changed":"2022-04-18T10:09:47.601898+00:00","last_updated":"2022-04-18T10:09:47.601898+00:00","context":{"id":"dc9dd0a8fec43b4c2790341190fc553a","parent_id":null,"user_id":null},"original_state":"40.9"},"new_state":{"entity_id":"sensor.multi_sensor_2","state":"41","attributes":{"state_class":"measurement","on":true,"unit_of_measurement":"%","device_class":"humidity","friendly_name":"Multi Sensor"},"last_changed":"2022-04-18T10:20:06.987959+00:00","last_updated":"2022-04-18T10:20:06.987959+00:00","context":{"id":"a02196b7045b9135542f317863cfacda","parent_id":null,"user_id":"b721d002302e4f0d87ac0bbc49c0d83c"},"original_state":"41","timeSinceChangedMs":6}}
In je voorbeeld zie ik 0.1% verschil (van 40.9 naar 41). Is dat bij een daling ook zo'n klein verschil? Of is dat een onnauwkeurigheid van de sensor?

Reden dat ik dat vraag is dat ik me een verloop kan voorstellen van 40.9, 41, 40.9, 41, etc. Dan zou een simpele "kleiner dan" vergelijking niet werken namelijk en moet je naar trend over een langere tijd kijken, of naar x afname t.o.v. een recent maximum.

Kun je meer zeggen over het verloop in de tijd gedurende de douchebeurt, maar ook tijdens de rest van de dag?

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op maandag 18 april 2022 @ 13:02:
[...]


In je voorbeeld zie ik 0.1% verschil (van 40.9 naar 41). Is dat bij een daling ook zo'n klein verschil? Of is dat een onnauwkeurigheid van de sensor?

Reden dat ik dat vraag is dat ik me een verloop kan voorstellen van 40.9, 41, 40.9, 41, etc. Dan zou een simpele "kleiner dan" vergelijking niet werken namelijk en moet je naar trend over een langere tijd kijken, of naar x afname t.o.v. een recent maximum.

Kun je meer zeggen over het verloop in de tijd gedurende de douchebeurt, maar ook tijdens de rest van de dag?
In dit geval was het 0.1 omdat ik m handmatig op een andere waarde had gezet. Zodat het log zou vullen. De volgende ' automatische waarde' is 12:23 uur --> 39,7. Dus een daling van 1.2.. (ten opzichte van die 40,9 dus) De daarop volgende 13:08 uur --> 41,3 (vrouw net haar gefohnt).

Dus nee, het is niet heel vaak en ook niet een heel erg ' logisch' verloop.

Ziet er ongeveer zo uit

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

Hierbij zijn de 3 pieken dus de douche-sessies, waarvan de eerste 2 86% en 85% zijn en de laatste een kortere sessie van 75%.. Dus boven de X aan en onder de X uit werkt niet altijd.. Daarom wilde ik graag kunnen werken met ' afname is X %' of iets dergelijks

[ Voor 9% gewijzigd door Koepert op 18-04-2022 13:22 ]


Acties:
  • +2 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op maandag 18 april 2022 @ 13:20:
[...]


In dit geval was het 0.1 omdat ik m handmatig op een andere waarde had gezet. Zodat het log zou vullen. De volgende ' automatische waarde' is 12:23 uur --> 39,7. Dus een daling van 1.2.. (ten opzichte van die 40,9 dus) De daarop volgende 13:08 uur --> 41,3 (vrouw net haar gefohnt).

Dus nee, het is niet heel vaak en ook niet een heel erg ' logisch' verloop.

Ziet er ongeveer zo uit

[Afbeelding]

Hierbij zijn de 3 pieken dus de douche-sessies, waarvan de eerste 2 86% en 85% zijn en de laatste een kortere sessie van 75%.. Dus boven de X aan en onder de X uit werkt niet altijd.. Daarom wilde ik graag kunnen werken met ' afname is X %' of iets dergelijks
Een eenvoudige vergelijking kun je doen met de switch node (heb het niet kunnen testen):

Afbeeldingslocatie: https://tweakers.net/i/slib5x6AkDeEXT6biv__Z8V9zVE=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/PHm7yZ4T1EJzZaAd131QZ5Qh.jpg?f=user_large

Wil je ingewikkelder dingen doen, dan zou ik een function node gebruiken om berekeningen te doen.
Bijvoorbeeld: bij een snelle stijging in een korte tijd moet de ventilator aan.

Ideale luchtvochtigheid in huis is 40-60%, in de badkamer 50-70% (volgens internet)

Heb je wel voldoende ventilatie? Als je lucht afzuigt, is er dan ook een plek vanwaar verse lucht wordt aangezogen? Gebruik je een trekker en doek om de douche droog te maken? Heb je een raam?

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Nog een kleine toevoeging: ik zag in je JSON data dat de humidity waarden in het state veld in tekst formaat zijn en niet een getal. "40.9" (met quotes) tov 40.9 (zonder quotes). Kan zijn dat de vergelijking daardoor mis gaat.

Feel free to Buy me a coffee


Acties:
  • +1 Henk 'm!

  • d-vine
  • Registratie: Augustus 2006
  • Laatst online: 19:43
Koepert schreef op maandag 18 april 2022 @ 09:34:
[...]


Aqara sensor: https://www.xiaomiproduct...n-vochtigheidssensor.html

Dus die zal ongetwijfeld niet t meest geschikt zijn. Dat accepteer ik voor nu, zoals aangegeven, gaat t mij vooral om het lerende aspect van hoe/of het mogelijk is te triggeren op een AFNAME ipv een onder X
Ik heb dit nu gevonden toevallig op youtube en moest aan jou probleem denken
het is geen node-red maar een helper in configuration, automations - helpers

vanaf 36 seconden gelijk de eerste
YouTube: 6 New Home Assistant Input Helpers Explained!

https://community.home-as...ion-of-a-sensor/251777/8'


misschien helpt het met je zoektocht of is dit misschien een oplossing.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 03-06 10:51
musicpixel schreef op maandag 18 april 2022 @ 14:28:
[...]


Een eenvoudige vergelijking kun je doen met de switch node (heb het niet kunnen testen):

[Afbeelding]

Wil je ingewikkelder dingen doen, dan zou ik een function node gebruiken om berekeningen te doen.
Bijvoorbeeld: bij een snelle stijging in een korte tijd moet de ventilator aan.

Ideale luchtvochtigheid in huis is 40-60%, in de badkamer 50-70% (volgens internet)

Heb je wel voldoende ventilatie? Als je lucht afzuigt, is er dan ook een plek vanwaar verse lucht wordt aangezogen? Gebruik je een trekker en doek om de douche droog te maken? Heb je een raam?
Ik zal die function-node eens zo gaan toepassen/testen. Kijken of dat voldoende werkt. Ventilatie in de douche is de deur open en/of de mechanische ventilatie aan (standaard heeeeeel zacht, stand 2 of 3 is harder, 3 is vlak na douchen vaak aan). Maar die ventilatie vind mn vrouw verschrikkelijk qua geluid, dus staat t liefst zo kort mogelijk aan. Maar dat is alleen een afzuigventiel (https://www.sanitairwinke...tiel-vef150-160-kunststof) die de boel afzuigt. Aanzuiging is afhankelijk van hoever de deur openstaat zeg maar. Er zijn geen ramen. De douchecabine maken we wel elke keer droog met de trekker. (Raamwisser)


@d-vine Dat is nog een idee. Ik wil zoveel mogelijk in Node-Red houden (A leerzaam en B overzichtelijk op 1 plek) maar om dit op basis van een helper ipv de daadwerkelijke sensor te doen is natuurlijk prima.

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
Koepert schreef op dinsdag 19 april 2022 @ 10:17:
[...]
Ik zal die function-node eens zo gaan toepassen/testen. Kijken of dat voldoende werkt. Ventilatie in de douche is de deur open en/of de mechanische ventilatie aan (standaard heeeeeel zacht, stand 2 of 3 is harder, 3 is vlak na douchen vaak aan). Maar die ventilatie vind mn vrouw verschrikkelijk qua geluid, dus staat t liefst zo kort mogelijk aan. Maar dat is alleen een afzuigventiel (https://www.sanitairwinke...tiel-vef150-160-kunststof) die de boel afzuigt. Aanzuiging is afhankelijk van hoever de deur openstaat zeg maar. Er zijn geen ramen. De douchecabine maken we wel elke keer droog met de trekker. (Raamwisser)
Ik heb van de week ook humidity sensors binnen gekregen en nu aan het testen. Hieronder twee grafieken, de eerste van een korte douchebeurt (7-8 min) en de tweede een langere (15-20 min ofzo). De horizontale schaal is wel verschillend... Paars is de badkamer sensor, geel de slaapkamer ernaast.

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

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

Wat mij opvalt is dat echt binnen een paar minuten na uitzetten van de kraan de humidity al is gedaald tot onder 60% en dat het niet echt uitmaakt hoe lang ik heb gedoucht.

Mijn routine:
- afzuiging op stand 2 (max)
- kraan aan (deur is dicht)
- douchen
- kraan uit
- wanden douche met trekker
- afdrogen
- douchedeur half open zetten, afzuiging op stand 1 en "uit" (timer van 30 min)
- douche nadrogen met handdoek
- afzuiging gaat na 30 min uit

Soms vergeet ik de afzuiging aan te zetten en dan wordt het wel heel erg mistig, maar dat heb ik nog niet gemeten.

Ik heb overigens, net als jij, een badkamer zonder ramen en alleen zo'n ventiel. Ik heb wel een kier van 2cm onder de deur voor aanvoer van lucht.

Kijkend naar het verschil tussen jouw en mijn waarden lijkt het er op dat je misschien moet kijken naar hoe goed je afzuiging werkt. Je zou in ieder geval eens kunnen testen met meteen de afzuiging op max te zetten voor je de kraan aan zet en op max te laten tot een paar minuten nadat je de kraan hebt uitgezet.

Als je wilt wil ik nog wel kijken naar welke afzuiger ik heb (en de capaciteit), maar dan moet ik even op het bergzoldertje kruipen...

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • etienne001
  • Registratie: September 2005
  • Laatst online: 06-06 20:42
Ik zit hier met een vraagstuk.

Wanneer ik het alarmsysteem uitschakel, horen wij op de Nest Audio dan welk afval er de volgende en dezelfde dag wordt opgehaald. Kort daarna wordt een radiozender gestart op de Nest audio.
So far so good.

Nou heb ik in de TV een Chrome Cast die pas spanning krijg als de tv wordt aangezet. Dus staat de TV uit dan is deze entiteit als niet beschikbaar in HA.
Gaat de TV aan de krijg ik na een paar seconde te zien dat de entiteit de waarde uit heeft.

Wat ik nou graag zou willen toevoegen is dat wanneer de TV (chromecast) aangaat, de Nest Audio stopt met streamen.
Is deze entiteit niet beschikbaar (dus TV gaat weer uit) dan moet de Nest audio weer gaan streamen met de radio.
Hoe kan ik dit het beste toevoegen?

Mocht je interesse hebben, bijgaand de code:
code:
1
[{"id":"616cfeea92b00952","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"8371166d4bdc1958","type":"switch","z":"616cfeea92b00952","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":490,"y":400,"wires":[["80d6f3d88bb22efd"],["4de55b019d2da0a5","e769ced063945a6e","bee610b33b2ee589","0f2ac74c286ec290"]]},{"id":"80d6f3d88bb22efd","type":"api-call-service","z":"616cfeea92b00952","name":"","server":"1942d160.7834af","version":5,"debugenabled":false,"domain":"climate","service":"set_preset_mode","areaId":[],"deviceId":[],"entityId":["climate.living_room"],"data":"{\"preset_mode\":\"eco\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":970,"y":360,"wires":[[]]},{"id":"4de55b019d2da0a5","type":"api-call-service","z":"616cfeea92b00952","name":"","server":"1942d160.7834af","version":5,"debugenabled":false,"domain":"climate","service":"set_hvac_mode","areaId":[],"deviceId":[],"entityId":["climate.living_room"],"data":"{\"hvac_mode\":\"heat\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":970,"y":440,"wires":[[]]},{"id":"d059a5f7a67c0d69","type":"server-state-changed","z":"616cfeea92b00952","name":"Alarmsysteem","server":"1942d160.7834af","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.openclose_17","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":170,"y":340,"wires":[["8371166d4bdc1958"]]},{"id":"32c1bc376e6f3e00","type":"inject","z":"616cfeea92b00952","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"true","payload":"on","payloadType":"str","x":170,"y":400,"wires":[["8371166d4bdc1958"]]},{"id":"1a2d622442ea707a","type":"inject","z":"616cfeea92b00952","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"false","payload":"off","payloadType":"str","x":170,"y":440,"wires":[["8371166d4bdc1958"]]},{"id":"9f1e98fead2d65f5","type":"trigger","z":"616cfeea92b00952","name":"","op1":"true","op2":"","op1type":"flow","op2type":"pay","duration":"5","extend":false,"overrideDelay":true,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":720,"y":680,"wires":[["5856cb85b5f2040c"]]},{"id":"5856cb85b5f2040c","type":"cast-to-client","z":"616cfeea92b00952","name":"","url":"","contentType":"","message":"Morgen moet het volgende afval aan de weg","language":"nl","ip":"192.168.1.13","port":"","volume":"30","x":950,"y":680,"wires":[[]]},{"id":"e77818daae96936b","type":"api-current-state","z":"616cfeea92b00952","name":"","server":"1942d160.7834af","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.circulus_morgen","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":450,"y":680,"wires":[["9f1e98fead2d65f5"]]},{"id":"e769ced063945a6e","type":"delay","z":"616cfeea92b00952","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":160,"y":680,"wires":[["e77818daae96936b"]]},{"id":"2a5b098990912ddb","type":"trigger","z":"616cfeea92b00952","name":"","op1":"true","op2":"","op1type":"flow","op2type":"pay","duration":"5","extend":false,"overrideDelay":true,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":720,"y":740,"wires":[["a128c70c24c21a54"]]},{"id":"a128c70c24c21a54","type":"cast-to-client","z":"616cfeea92b00952","name":"","url":"","contentType":"","message":"Vandaag moet het volgende afval aan de weg","language":"nl","ip":"192.168.1.13","port":"","volume":"30","x":950,"y":740,"wires":[[]]},{"id":"85d53d8e4d9dc012","type":"api-current-state","z":"616cfeea92b00952","name":"","server":"1942d160.7834af","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.circulus_vandaag","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":450,"y":740,"wires":[["2a5b098990912ddb"]]},{"id":"bee610b33b2ee589","type":"delay","z":"616cfeea92b00952","name":"","pauseType":"delay","timeout":"15","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":160,"y":740,"wires":[["85d53d8e4d9dc012"]]},{"id":"982a089e880ca2bb","type":"cast-to-client","z":"616cfeea92b00952","name":"","url":"https://stream.qmusic.nl/qmusic/mp3","contentType":"audio","message":"","language":"nl","ip":"192.168.1.13","port":"","volume":"30","x":950,"y":800,"wires":[[]]},{"id":"0f2ac74c286ec290","type":"delay","z":"616cfeea92b00952","name":"","pauseType":"delay","timeout":"30","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":160,"y":800,"wires":[["982a089e880ca2bb"]]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:23
Ik gebruik de waardes van een 3-tal DS18B20 sensoren die ik met Tasmota uitlees. Die waardes haal ik op in Node-RED. Ik werd door deze post getriggerd dat het issue wat hij beschrijft ook bij mij kan optreden (andere sensorvolgorde = data ophalen van verkeerde sensor). Ik doe nu namelijk gewoon dit:
JavaScript:
1
msg.state.temperature = +(msg.payload.StatusSNS['DS18B20-3'].Temperature).toFixed(2);


Hoe kan ik met een JSONata expression de temperatuurwaarde ophalen die bij een bepaalde sensor-ID (0000xxx) hoort?

Dit is de JSON output vanuit Tasmota:

JSON:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "StatusSNS": {
    "Time": "2022-04-24T18:50:24",
    "DS18B20-1": {
      "Id": "000004A81992",
      "Temperature": 15.0
    },
    "DS18B20-2": {
      "Id": "000004A8DF66",
      "Temperature": 20.0
    },
    "DS18B20-3": {
      "Id": "000004B586F3",
      "Temperature": 30.0
    },
    "TempUnit": "C"
  }
}


Ik heb al wat zitten klooien in de JSONata testomgeving met keys/select e.d. maar krijg het niet voor elkaar. Hier de testdata: https://try.jsonata.org/Kc0rsgVaT

Iemand tips hoe ik dit voor elkaar krijg?


Nog even verder zitten klooien, zag dat ik al eens eerder tegen zoiets aan was gelopen. Dit lijkt te werken:
JavaScript:
1
StatusSNS.*[Id = '000004A81992'].Temperature

[ Voor 16% gewijzigd door ThinkPad op 25-04-2022 09:37 ]


Acties:
  • 0 Henk 'm!
@ThinkPad Moet het per sé met JSONata? Ik heb het idee dat JS hier geschikter voor is namelijk..

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:23
Zie edit, heb het via JSONata al opgelost. Maar een Javascript oplossing is ook welkom hoor.

Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
Ik heb nu een klein jaar node-red draaien voor een aantal dashboards en automatiseringen, maar loop toch tegen een praktisch ding aan, waarvan ik me afvraag hoe jullie dat doen:

Hoe debuggen jullie je flows?

Is er een handige manier om tussentijds toestanden of events op een of andere manier in een logfile te stoppen?

Concreet voorbeeld: Ik heb wat automatiserings-logica gemaakt om te zorgen dat mijn warmtepomp om 13:00 's middags een extra warm water-run doet als dat nodig is. Dat lijkt tamelijk straight-forward:
- Via MQTT komt met enige regelmaat (paar keer per minuut) de actuele temperatuur binnen van zowel het midden als onderin mijn boilervat.
- Als aan de voorwaarden voldaan is stuur ik een "1" naar een trafficlight dat van 13:00-13:15 berichten doorlaat
- Vervolgens beperk ik dat tot 1 bericht per uur (zodat er effectief dus precies 1 bericht doorkomt)
- Dat combineer ik nog met een input vanmuit mijn dashboard zodat ik ook handmatig de sww-run kan forceren.
- Tot slot stuur ik het commando alleen bij wijzigingen door naar de warmtepomp (wederom via MQTT).

Het suffe is dus dat hij het soms simpelweg niet doet. Ook niet als aan de juiste voorwaarden voldaan is (temperatuur log ik los van node-red ook in een database, dus kan ik terugkijken). MQTT-berichten naar de warmtepomp gaan via een eigen script en log ik ook.

Het is niet heel praktisch om overal debug-nodes neer te zetten en dan elke dag het debug-venster open te houden en te gaan wachten tot het een keer fout gaat. Maar ik wil wel dat het betrouwbaar werkt. Hoe kan ik debug-logging toevoegen?
Ik begin een beetje op het punt te komen dat ik node-red - hoe handig en makkelijk het is om snel even iets in elkaar te zetten - maar gewoon te laten voor wat het is en de logica in wat Perl-scripts te stoppen. Dat deed ik al met andere zaken voordat ik node-red ontdekte en dat doet het gewoon altijd. Daarnaast is dat met wat debug-logging heel makkelijk te trouble-shooten.

Maar misschien zie ik iets heel triviaals over het hoofd?

Zie plaatjes + flow (klikbaar):
Afbeeldingslocatie: https://tweakers.net/i/Z373BKh5hdC77nRgrumi11CdP_c=/234x176/filters:strip_exif()/f/image/c4hO0giNXTlfY1Y4CMBSmTFy.png?f=fotoalbum_medium

Afbeeldingslocatie: https://tweakers.net/i/3KEfmh07VgsFr2uOVBvxCb5Xi1g=/234x176/filters:strip_exif()/f/image/VXiyRmUbS0S0tyntzwk6uscD.png?f=fotoalbum_medium

code:
1
[{"id":"4ab212acf9d0c39d","type":"group","z":"90954defc8f855c9","name":"Extra warm water run 's middags","style":{"fill":"#d1d1d1","label":true,"color":"#000000","label-position":"n"},"nodes":["2eb5b4cf6ac391a9","e2246128b09c227d","f92bec22ae9ae6d4","5fbcd8348ac8595d","dff553b9d068ad99","8d7dbb8674f5f59a","031a0b744e06968f","f583bb9ba696a712","acd03820161457a8","2eb125c8286d6148","2c63a6e903b14263","5216123b9c256bf3","80843023fe9aa30b","0822d2721c0a3088","1e03918ba5980345","eb7dc3f7a9183799"],"x":84,"y":659,"w":1632,"h":322},{"id":"2eb5b4cf6ac391a9","type":"comment","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"SWW-Run in de middag afhankelijk van boilertemperatuur in het vat","info":"","x":350,"y":700,"wires":[]},{"id":"e2246128b09c227d","type":"link in","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"Tank Midden","links":["cd086ea7d65b08fb"],"x":180,"y":800,"wires":[["acd03820161457a8"]],"l":true},{"id":"f92bec22ae9ae6d4","type":"link in","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"Tank Onder","links":["d456648142588d94"],"x":180,"y":880,"wires":[["031a0b744e06968f"]],"l":true},{"id":"5fbcd8348ac8595d","type":"time-range-switch","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"13:00","lat":"","lon":"","startTime":"13:00","endTime":"13:15","startOffset":0,"endOffset":0,"x":1080,"y":880,"wires":[["dff553b9d068ad99"],[]]},{"id":"dff553b9d068ad99","type":"delay","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"x":1220,"y":880,"wires":[["80843023fe9aa30b"]]},{"id":"8d7dbb8674f5f59a","type":"mqtt out","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","topic":"procon/cmnd/forcesww","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"b0a4b8a51e97466f","x":1580,"y":760,"wires":[]},{"id":"031a0b744e06968f","type":"switch","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"Onderin <40 ?","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"40","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":370,"y":880,"wires":[["2eb125c8286d6148"]]},{"id":"f583bb9ba696a712","type":"change","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"Aan (1)","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":880,"wires":[["5fbcd8348ac8595d","1e03918ba5980345"]]},{"id":"acd03820161457a8","type":"change","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","rules":[{"t":"set","p":"Tmidden","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":800,"wires":[[]]},{"id":"2eb125c8286d6148","type":"switch","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"TMidden < 45","property":"Tmidden","propertyType":"flow","rules":[{"t":"lt","v":"45","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":880,"wires":[["f583bb9ba696a712"],["2c63a6e903b14263"]]},{"id":"2c63a6e903b14263","type":"switch","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"Onderin <20 ?","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"20","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":750,"y":940,"wires":[["f583bb9ba696a712"]]},{"id":"5216123b9c256bf3","type":"link in","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"ForceSWW","links":["28cc54048517014e","5d37cfaa0b284944"],"x":980,"y":760,"wires":[["0822d2721c0a3088"]],"l":true},{"id":"80843023fe9aa30b","type":"rbe","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":1400,"y":760,"wires":[["8d7dbb8674f5f59a","eb7dc3f7a9183799"]]},{"id":"0822d2721c0a3088","type":"delay","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"30","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"x":1190,"y":760,"wires":[["80843023fe9aa30b"]]},{"id":"1e03918ba5980345","type":"debug","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1080,"y":940,"wires":[]},{"id":"eb7dc3f7a9183799","type":"debug","z":"90954defc8f855c9","g":"4ab212acf9d0c39d","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1540,"y":840,"wires":[]},{"id":"b0a4b8a51e97466f","type":"mqtt-broker","name":"MQTT","broker":"mqtt","port":"1883","clientid":"","usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"sessionExpiry":""}]

Acties:
  • +1 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
@ocaj Debuggen doe ik zelf met de debug nodes, dus niets naar file of zo. Wat je wel kunt proberen is om met een inject node meerdere scenario's te maken en die te injecteren in je flow. Dan kun je makkelijk testen buiten de aangeleverde temperaturen om.

Verder zijn er meerdere wegen naar Rome, maar ik zou je flow misschien anders hebben opgebouwd.

1. Er komen meerdere keren per minuut temps binnen
2. Je wilt om 13.00 een warmwater-run doen als dat nodig is
3. Je wilt handmatig een warmwater-run kunnen doen
4. Commando mag alleen bij wijzigingen worden gestuurd (is het erg als het gewoon altijd wordt gestuurd?)

Op basis van bovenstaande kom ik op de volgende flows uit:

1a. Zodra onderin-temp binnen komt -> sla op in flow variabele voor onderin-temp
1b. Zodra midden-temp binnen komt -> sla op in flow var voor midden-temp
2. Inject node die elke dag om 13.00 start -> zet flow vars in message vars -> check voorwaarden obv message vars -> stuur commando
3. Actie via dashboard komt binnen -> stuur commando

Voordeel van deze opzet is dat je heel makkelijk bij 2) een extra inject node kunt plaatsen welke je met de hand kunt starten, en die de message vars instelt op testwaarden die je flow in schiet.

Ik kan een voorbeeldje maken als je wilt...

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
@musicpixel Goede suggestie, ik zal het zo eens proberen.
Wellicht dat de diverse filters ergens soms onterecht filteren en zo het commando tegenhouden. Met jouw voorgestelde opzet is die kans in ieder geval kleiner.

Geen idee of de warmtepomp het heel fijn vind als commando's steeds doorgaan, maar de warmtepomp reageert vrij traag, dus dat wou ik een beetje doseren.
Vandaar ook het 30s filter na een handmatig commando. Anders zet je hem aan, maar roept hij eerst nog 20 seconde de actuele status "uit" en die komt dan weer als commando door (dashboard laat zowel actuele status zien via een switch als stuurt ook commando's uit). Pas max 20 seconde na het opsturen van het commando zie je de actuele status wijzigen.

Acties:
  • 0 Henk 'm!

  • CAD-tekenaar
  • Registratie: November 2008
  • Laatst online: 06-06 21:44
Hebben er meerdere personen last van Node-Red die maar blijft herstarten?
Vanaf vandaag omstreeks 18.34 uur is het gestart. Node-Red blijft maar herstarten.
Ik heb de laatste week geen aanpassingen gedaan en de herstarts zijn spontaan begonnen.
(Automatisch starten bij opstarten en Watchdog zijn aangezet.)

Heeft iemand hier een verklaring voor en/of weet iemand de oplossing?
Afbeeldingslocatie: https://tweakers.net/i/Zt7NyMoxuxWRvxwXqEXgLylWJAY=/x800/filters:strip_exif()/f/image/qeO1Km3dJECstyoefwAzW9DW.png?f=fotoalbum_large

[ Voor 16% gewijzigd door CAD-tekenaar op 29-04-2022 19:23 ]


Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
ocaj schreef op vrijdag 29 april 2022 @ 19:16:
Geen idee of de warmtepomp het heel fijn vind als commando's steeds doorgaan, maar de warmtepomp reageert vrij traag, dus dat wou ik een beetje doseren.
Als je een inject om 13.00 hebt staan wordt dat commando dus maar max 1x gestuurd, en zolang je in je dashboard niet herhaaldelijk op de knop drukt, zal ook in dat geval het commando maar 1x gestuurd worden.

Feel free to Buy me a coffee


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
Ik heb mijn flow nu aangepast met een inject-node om 13:00 en de continue updates van temperatuur in flow-variabelen.

Die 30-sec vertraging als ik de switch omzet in het dashboard kan ik niet onderuit:
De switch wordt aan de voorkant gevoed door de actuele status van de warmtepomp. Actuele toestand naar mijn dashboard komt ca 1 keer per 1-1,5 sec.

Als ik de switch in het dashboard op de andere stand zet, dan gaat dat commando wel naar de warmtepomp, maar de warmtepomp heeft veel tijd nodig om de actuele toestand te updaten. In het dashboard zet ik dan dus de switch aan en gedurende 10-20 sec springt hij dan weer terug (op basis van actuele toestand) en gaat dan weer aan, zodra de actuele toestand het gevraagde commando heeft overgenomen.
Niet het einde van de wereld, maar dat heen en weer gespring moet zich niet in nieuwe commando's naar de warmtepomp gaan vertalen. Dan stopt het denk ik niet meer.... :N

Acties:
  • 0 Henk 'm!

  • musicpixel
  • Registratie: Juni 2011
  • Laatst online: 08-06 21:11
ocaj schreef op vrijdag 29 april 2022 @ 22:33:
Ik heb mijn flow nu aangepast met een inject-node om 13:00 en de continue updates van temperatuur in flow-variabelen.

Die 30-sec vertraging als ik de switch omzet in het dashboard kan ik niet onderuit:
De switch wordt aan de voorkant gevoed door de actuele status van de warmtepomp. Actuele toestand naar mijn dashboard komt ca 1 keer per 1-1,5 sec.

Als ik de switch in het dashboard op de andere stand zet, dan gaat dat commando wel naar de warmtepomp, maar de warmtepomp heeft veel tijd nodig om de actuele toestand te updaten. In het dashboard zet ik dan dus de switch aan en gedurende 10-20 sec springt hij dan weer terug (op basis van actuele toestand) en gaat dan weer aan, zodra de actuele toestand het gevraagde commando heeft overgenomen.
Niet het einde van de wereld, maar dat heen en weer gespring moet zich niet in nieuwe commando's naar de warmtepomp gaan vertalen. Dan stopt het denk ik niet meer.... :N
Ik heb het niet geprobeerd, en weet ook niet of het gaat werken, maar dacht aan het volgende:

Een button-helper om de warmtepomp te starten en een andere helper die de state weergeeft. Die state kan dan zijn: off, starting, on, (+ evt stopping). Even aangenomen dat je niet de warmtepomp met de hand wilt uitzetten.

Je kunt die state dan updaten mbv Node Red waar je de state zet op basis van drukken op de knop/info van de warmtepomp.

Of is die switch direct gekoppeld aan de warmtepomp (via een integratie)?

Feel free to Buy me a coffee

Pagina: 1 ... 25 ... 32 Laatste