• emielbf
  • Registratie: Juni 2019
  • Laatst online: 07:51
wat zou kunnen is bv een deursensor plaatsen en als die bv niet binnen 2 min voor de 2e keer weer 'safe' is, dan de ventilator inschakelen en uiteraard een kwartiertje (oid) langer laten doorlopen. maar is wel gedoe en niet fool-proof.

Gewoon een stille ventilator plaatsen en aandoen op beweging of open deur is veel makkelijker.

[ Voor 29% gewijzigd door emielbf op 27-05-2023 07:37 ]


  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Enige tijd geleden heb ik een huis gekocht met een HC3 en een aantal Fibaro schakelaars en sensors en ik wil graag van mijn HC3 af, omdat ik alles liever via HA doe. In HA kan ik de HC3 als device toevoegen, waardoor ik alsnog alle Fibaro schakelaars en schakelaars kan gebruiken in HA, maar ik wil de HC3 gewoon helemaal verwijderen en alle Fibaro devices direct vanuit HA gebruiken. Ik heb daarvoor een Z-Wave USB-stick (ZMEEUZB1) gekocht.

Het lukt me echter niet om de Fibaro schakelaars en sensors te ontkoppelen van HC3. Zolang ze daar nog aan gekoppeld zijn, kunnen ze niet worden gepaird met HA via de Z-Wave USB-stick (ZMEEUZB1).

Na heel veel gedoe is het me gelukt om 1 schakelaar (FGD211) en sensor (Philio PAT-20B) te ontkoppelen en te koppelen aan mijn HA. Ik weet dus dat mijn Z-Wave USB-stick (ZMEEUZB1) werkt.

Als ik het goed begrijp kan je een device op een aantal manier ontkoppelen van HC3:
Methode A:
1. Klik in HC3 de algemene "Remove Device" knop
2. Kies Z-Wave Device
3. Klik Start
4. Je hebt nu een minuut de tijd om het device in "learning mode" te zetten.

Het lukt mij echter nooit om het device in learning mode te zetten. De teksten in de handleiding zijn enigszins dubbelzinnig:
- Quickly, three times press switch no. 1 or the B-button (https://manuals.fibaro.com/double-relay-switch/)
− service button B, located inside the housing (activates learn mode)
https://manuals.fibaro.co...222/FGS-222-EN-A-v1.1.pdf

Als ik de B button gebruik, moet die dan 1 maal of 3 maal gedrukt worden om in learning mode te komen? De S1 button kan ik bij de meeste switches niet gebruiken, omdat die niet is aangesloten. De meeste schakelaars in mijn huis worden alleen via de HC3 bediend. Overigens lukt het bij een schakelaar waar de S1 wel was aangesloten ook niet om met 3 keer S1 drukken de schakelaar in learning mode te krijgen. Natuurlijk heb ik vele, veeeele, veeeeeeele keren zowel 1 keer als 3 keer geprobeerd op de B button te drukken, zonder resultaat.

Ok, methode A werkt dus niet. Op naar methode B:
1. Klik Delete (vuilnisbak icoontje) voor een specifiek device
2. Hoera. Er is een "Force remove" button.
3. Die resulteert echter in "NOP sending succeeded. The device has not been removed. Please use Learning Mode to remove it.". En een fijne dag nog... :-(

Methode C dan maar:
1. Klik Delete (vuilnisbak icoontje) voor een specifiek device
2. Klik op Exclusion Mode
3. Zet device in "learning mode". Wat dus niet werkt. Zie boven.

Overigens zijn de aanwijzingen op het scherm extreem onduidelijk:

Run 'Exclusion mode' and remove the device according to its manual or select 'Force remove'.
Set the duration of the learning mode, then click Continue . During the learning mode, simply activate the chosen device or remove it from the system.

Klik Continue?? Er is geen continue knop. De tekst "Continue" komt exact 1 keer voor op de pagina en het is geen link. Ze zullen dus wel bedoelen, klik "Exclusion Mode". En dan dit "simply activate the chosen device or remove it from the system". Hoe doe ik dit "simply"? Dit is nu juist wat ik wil bereiken.

Ok, Methode D. Volgens de handleiding is er een Reset optie (https://manuals.fibaro.com/relay-switch/): Reset procedure erases memory of the device, including all information on the Z-Wave network and the main controller.

Mooi. Exact wat ik wil. Dat moet als volgt: "Press and hold the B-button for 3 seconds".

Dat heb ik gedaan. Vaak. Heeeeel vaak. 3 seconden, 4 seconden, 5 seconden, 30 seconden en vele varianten daarop. Niks. De schakelaar blijft gekoppeld aan de HC3 en blijft werken.

Zoals eerder beschreven is het mij gelukt om 1 FGD211 te ontkoppelen. Ik weet niet meer exact wat ik heb gedaan, maar ik geloof dat ik het device op de HC3 weg heb gegooid. Terwijl de teller nog liep op de de HC3 heb ik de HC3 van de stroom gehaald en daarna een 3 seconden hard reset op de FGD211 gedaan. De exacte stappen weet ik niet meer, maar de HC3 was dus uit toen het eindelijk lukte om de FGD211 te ontkoppelen. Helaas lukte dezelfde truuk niet bij de FGS222. Die heb ik wel kunnen verwijderen van de HC3, door de stroom van de FGS-222 te halen en daarna een "force delete" te geven op de HC3. De HC3 is nu de FGS-222 vergeten, maar anderom blijkbaar niet, want de FGS-222 wil niet meer koppelen. Niet met mijn nieuwe Z-Wave USB-stick (ZMEEUZB1), maar ook niet meer met de HC3 zelf.

Natuurlijk heb ik na het verwijderen van de FGS222 van de HC3 verschillende keren een reset geprobeerd en geprobeerd de pairing mode op de FGS222 zowel met 1 keer de B button als met 3 keer de B button te activeren, zonder resultaat.

Dank aan iedereen die de moeite heeft genomen mijn hele verhaal te lezen en nog meer dank aan de degene die mij wijst op de ontzettend stomme fout die ik blijkbaar al de hele tijd maak....

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
EricEric752 schreef op woensdag 31 mei 2023 @ 17:09:
Enige tijd geleden heb ik een huis gekocht met een HC3 en een aantal Fibaro schakelaars en sensors en ik wil graag van mijn HC3 af, omdat ik alles liever via HA doe. In HA kan ik de HC3 als device toevoegen, waardoor ik alsnog alle Fibaro schakelaars en schakelaars kan gebruiken in HA, maar ik wil de HC3 gewoon helemaal verwijderen en alle Fibaro devices direct vanuit HA gebruiken. Ik heb daarvoor een Z-Wave USB-stick (ZMEEUZB1) gekocht.

Het lukt me echter niet om de Fibaro schakelaars en sensors te ontkoppelen van HC3. Zolang ze daar nog aan gekoppeld zijn, kunnen ze niet worden gepaird met HA via de Z-Wave USB-stick (ZMEEUZB1).

Na heel veel gedoe is het me gelukt om 1 schakelaar (FGD211) en sensor (Philio PAT-20B) te ontkoppelen en te koppelen aan mijn HA. Ik weet dus dat mijn Z-Wave USB-stick (ZMEEUZB1) werkt.

Als ik het goed begrijp kan je een device op een aantal manier ontkoppelen van HC3:
Methode A:
1. Klik in HC3 de algemene "Remove Device" knop
2. Kies Z-Wave Device
3. Klik Start
4. Je hebt nu een minuut de tijd om het device in "learning mode" te zetten.

Het lukt mij echter nooit om het device in learning mode te zetten. De teksten in de handleiding zijn enigszins dubbelzinnig:
- Quickly, three times press switch no. 1 or the B-button (https://manuals.fibaro.com/double-relay-switch/)
− service button B, located inside the housing (activates learn mode)
https://manuals.fibaro.co...222/FGS-222-EN-A-v1.1.pdf

Als ik de B button gebruik, moet die dan 1 maal of 3 maal gedrukt worden om in learning mode te komen? De S1 button kan ik bij de meeste switches niet gebruiken, omdat die niet is aangesloten. De meeste schakelaars in mijn huis worden alleen via de HC3 bediend. Overigens lukt het bij een schakelaar waar de S1 wel was aangesloten ook niet om met 3 keer S1 drukken de schakelaar in learning mode te krijgen. Natuurlijk heb ik vele, veeeele, veeeeeeele keren zowel 1 keer als 3 keer geprobeerd op de B button te drukken, zonder resultaat.

Ok, methode A werkt dus niet. Op naar methode B:
1. Klik Delete (vuilnisbak icoontje) voor een specifiek device
2. Hoera. Er is een "Force remove" button.
3. Die resulteert echter in "NOP sending succeeded. The device has not been removed. Please use Learning Mode to remove it.". En een fijne dag nog... :-(

Methode C dan maar:
1. Klik Delete (vuilnisbak icoontje) voor een specifiek device
2. Klik op Exclusion Mode
3. Zet device in "learning mode". Wat dus niet werkt. Zie boven.

Overigens zijn de aanwijzingen op het scherm extreem onduidelijk:

Run 'Exclusion mode' and remove the device according to its manual or select 'Force remove'.
Set the duration of the learning mode, then click Continue . During the learning mode, simply activate the chosen device or remove it from the system.

Klik Continue?? Er is geen continue knop. De tekst "Continue" komt exact 1 keer voor op de pagina en het is geen link. Ze zullen dus wel bedoelen, klik "Exclusion Mode". En dan dit "simply activate the chosen device or remove it from the system". Hoe doe ik dit "simply"? Dit is nu juist wat ik wil bereiken.

Ok, Methode D. Volgens de handleiding is er een Reset optie (https://manuals.fibaro.com/relay-switch/): Reset procedure erases memory of the device, including all information on the Z-Wave network and the main controller.

Mooi. Exact wat ik wil. Dat moet als volgt: "Press and hold the B-button for 3 seconds".

Dat heb ik gedaan. Vaak. Heeeeel vaak. 3 seconden, 4 seconden, 5 seconden, 30 seconden en vele varianten daarop. Niks. De schakelaar blijft gekoppeld aan de HC3 en blijft werken.

Zoals eerder beschreven is het mij gelukt om 1 FGD211 te ontkoppelen. Ik weet niet meer exact wat ik heb gedaan, maar ik geloof dat ik het device op de HC3 weg heb gegooid. Terwijl de teller nog liep op de de HC3 heb ik de HC3 van de stroom gehaald en daarna een 3 seconden hard reset op de FGD211 gedaan. De exacte stappen weet ik niet meer, maar de HC3 was dus uit toen het eindelijk lukte om de FGD211 te ontkoppelen. Helaas lukte dezelfde truuk niet bij de FGS222. Die heb ik wel kunnen verwijderen van de HC3, door de stroom van de FGS-222 te halen en daarna een "force delete" te geven op de HC3. De HC3 is nu de FGS-222 vergeten, maar anderom blijkbaar niet, want de FGS-222 wil niet meer koppelen. Niet met mijn nieuwe Z-Wave USB-stick (ZMEEUZB1), maar ook niet meer met de HC3 zelf.

Natuurlijk heb ik na het verwijderen van de FGS222 van de HC3 verschillende keren een reset geprobeerd en geprobeerd de pairing mode op de FGS222 zowel met 1 keer de B button als met 3 keer de B button te activeren, zonder resultaat.

Dank aan iedereen die de moeite heeft genomen mijn hele verhaal te lezen en nog meer dank aan de degene die mij wijst op de ontzettend stomme fout die ik blijkbaar al de hele tijd maak....
Voor de meeste moderne fibaro dingen is het: Zet de Z-Wave remove aan en druk 3 keer heel snel op een van de 2 knoppen (of schakelaar snel omzetten).

Overigens raad ik wel af om de HC3 eruit te halen, als er updates zijn voor je fibaro Z-Wave apparaten dan kun je die namelijk niet erop installeren, dat kan alleen met een Fibaro Home Center 2/3/lite. De integratie van Fibaro HC3 binnen Home Assistant is redelijk goed, de API die Fibaro heeft is ook erg uitgebreid.

Don't drive faster than your guardian angel can fly.


  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Ok, dus ook voor de B knop geldt: 3 keer drukken en niet 1 keer. Dat heb ik (ook) vele keren gedaan, maar nu weet ik dat in ieder geval zeker. Dank daarvoor.

De HC3 ga ik er toch tussenuit halen. De z-wave updates maken me niet zoveel uit. Z-wave stopt bij de controller en kan niet zelf het internet op. Qua security zijn die updates dus niet van belang. Qua security lijkt de HC3 zelf een groter probleem want ik ben, zacht gezegd, not impressed van de HC3 software. Die HC3 zit weliswaar netjes in mijn "niet te vertrouwen" VLAN maar uit is nog beter. Scheelt ook stroom.

  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Zojuist nog een keer geprobeerd mijn FGS222 te pairen met mijn HC3, door 3 keer kort op de B knop van de FGS222 te drukken, maar geen resultaat. De HC3 ziet de FGS222 niet tijdens het pairen. De HC3 en de FGS222 zitten op dezelfde locatie waar ze eerder minstens anderhalf jaar samen hebben gewerkt, dus een probleem met bereik lijkt me uitgesloten.

Ik neem aan dat het probleem is dat de FGS222 nog denkt dat hij verbonden is met de HC3 en daarom niet wil pairen.

Wat de status van de FGS222 ook is, het zou toch volgende moeten zijn om:
1. De FGS222 te resetten door 3 seconden (of langer) de B knop ingedrukt te houden terwijl de FGS222 op de stroom is aangesloten.
2. Daarna "Add Device" / Z-Wave te kiezen in de HC3.
3. 3 keer snel achter elkaar (binnen anderhalve seconde) op de B-knop van de FGS222 te drukken.

Die 3 stappen zouden toch altijd moeten werken? Bij mij helaas niet dus...

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
EricEric752 schreef op woensdag 31 mei 2023 @ 17:57:
Zojuist nog een keer geprobeerd mijn FGS222 te pairen met mijn HC3, door 3 keer kort op de B knop van de FGS222 te drukken, maar geen resultaat. De HC3 ziet de FGS222 niet tijdens het pairen. De HC3 en de FGS222 zitten op dezelfde locatie waar ze eerder minstens anderhalf jaar samen hebben gewerkt, dus een probleem met bereik lijkt me uitgesloten.

Ik neem aan dat het probleem is dat de FGS222 nog denkt dat hij verbonden is met de HC3 en daarom niet wil pairen.

Wat de status van de FGS222 ook is, het zou toch volgende moeten zijn om:
1. De FGS222 te resetten door 3 seconden (of langer) de B knop ingedrukt te houden terwijl de FGS222 op de stroom is aangesloten.
2. Daarna "Add Device" / Z-Wave te kiezen in de HC3.
3. 3 keer snel achter elkaar (binnen anderhalve seconde) op de B-knop van de FGS222 te drukken.

Die 3 stappen zouden toch altijd moeten werken? Bij mij helaas niet dus...
Nee je hoeft helemaal niet op die knop B te drukken. Je moet de aangesloten schakelaar 3 keer snel omswitchen.

Overigens kun je ook de remove bij Home Assistant aanzetten (heb ik begrepen van de helpdesk). Bij remove hoeft het apparaat niet perse verbonden te zijn met het specifieke Z-Wave netwerk.

Voor pairen is het ook op dezelfde manier de schakelaar 3 keer snel omzetten.

Edit: meestal zit een FGS222 achter een schakelaar, dus kom je niet bij de B knop. Vandaar dat je ook alles via de schakelaar zelf kunt uitvoeren.

[ Voor 5% gewijzigd door DutchKel op 31-05-2023 18:10 ]

Don't drive faster than your guardian angel can fly.


  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Er is geen wandschakelaar aangesloten (S1) op de FGS222 waar ik nu mee bezig ben en op de meeste andere Fibaro switches ook niet. Deze FGS222 wordt gebruikt om verlichting in de overkapping te schakelen en dan kan dus alleen via de HC3. Vraag me niet waarom, zo heeft de vorige eigenaar het gemaakt. De meeste andere schakelaars hebben ook geen S1 aansluiting, omdat ze bijvoorbeeld worden gebruikt om groepen van de vloerverwarming te schakelen. Daarvoor is opnieuw geen mechanische optie. Het kan alleen via de HC3.

Op de betreffende FGS222 zijn dus alleen de N, L, IN en Q1 aangesloten. De S1, S2 en Q2 poorten zijn niet aangesloten.

De FGS222 wilt niet pairen als ik 3 keer kort op de B knop druk (ik voel het "klikje" als ik erop druk). Hij pairt zowel niet met mijn nieuwe Z-Wave USB-stick (ZMEEUZB1) in HA als niet met de HC3 waarmee hij vanmorgen nog verbonden was. De Z-Wave USB-stick (ZMEEUZB1) is wel gepaird met 2 andere z-wave devices die eerder aan de HC3 waren gepaird (na ontzettend veel gedoe. Zie boven). De Z-Wave USB-stick (ZMEEUZB1) is dus technisch goed aangesloten (is doorgezet usb device naar een proxmox VM die HA draait). Maar goed, vergeet de Z-Wave USB-stick (ZMEEUZB1) even om fouten daarmee uit te sluiten. Met de HC3 zou hij moeten pairen want daar heeft hij eerder mee gewerkt.

Omdat de FGS222 niet wil pairen, ga ik ervan uit dat hij nog "in de war is" vanwege de eerdere connectie. Een factory reset (b knop 3 seconden indrukken) zou dat echter moeten verhelpen. Ook dat heb ik intussen vele malen gedaan. Factory reset en daarna proberen te pairen via 3 keer kort b-knop. Helaas geen succes.

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
Volgens de handleiding moet je voor het pairen en unpairen met de B knop maar 1 keer erop drukken terwijl het z-wave apparaat op pair of unpair staat. Het apparaat hoeft niet gekoppeld te zijn. Dus je kunt hem via de Home Center 3 unpairen en erna via Home Assistant pairen.

Voor het resetten moet je de stroom eraf halen de B knop indrukken, de stroom erop zetten en dan de B knop 3 seconden vasthouden.

Dit staat overigens allemaal in de handleiding: https://manuals.fibaro.co...222/FGS-222-EN-A-v1.1.pdf

Don't drive faster than your guardian angel can fly.


  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Dat heb ik allemaal geprobeerd (ook die handleiding gelezen). Dat pairen via de b knop vind ik erg onduidelijk opgeschreven. De tekst (op diverse plaatsen) is mijns inziens voor meerdere uitleg vatbaar (of het nu 1 of 3 keer is bij drukken op knop b). Ik heb beide opties heel erg vaak geprobeerd, met beide geen effect. Logischerwijs denk ik dat het met de b knop 3 keer is, omdat de functie verder hetzelfde is als S1. Met de b knop kan je ook het licht aan en uit doen. Maar zoals gezegd, zowel 1 als de 3 keer drukken op de b knop heb ik echt vele malen geprobeerd.

Het zou natuurlijk kunnen dat mijn fibaro schakelaar gewoon kapot is, maar dat lijkt me onwaarschijnlijk omdat hij vanmorgen nog werkte (totdat ik hem forcefully verwijderd heb) en nu kan hij nog steeds het licht schakelen) en omdat ik gisteren met en andere fibaro uren lang hetzelfde gedoe had, totdat het "opeens" werkte.

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
EricEric752 schreef op woensdag 31 mei 2023 @ 19:24:
Dat heb ik allemaal geprobeerd (ook die handleiding gelezen). Dat pairen via de b knop vind ik erg onduidelijk opgeschreven. De tekst (op diverse plaatsen) is mijns inziens voor meerdere uitleg vatbaar (of het nu 1 of 3 keer is bij drukken op knop b). Ik heb beide opties heel erg vaak geprobeerd, met beide geen effect. Logischerwijs denk ik dat het met de b knop 3 keer is, omdat de functie verder hetzelfde is als S1. Met de b knop kan je ook het licht aan en uit doen. Maar zoals gezegd, zowel 1 als de 3 keer drukken op de b knop heb ik echt vele malen geprobeerd.

Het zou natuurlijk kunnen dat mijn fibaro schakelaar gewoon kapot is, maar dat lijkt me onwaarschijnlijk omdat hij vanmorgen nog werkte (totdat ik hem forcefully verwijderd heb) en nu kan hij nog steeds het licht schakelen) en omdat ik gisteren met en andere fibaro uren lang hetzelfde gedoe had, totdat het "opeens" werkte.
Ik heb even een filmpje gemaakt van een Fibaro Walli Switch hoe die gepaired en unpaired moet worden. De methode is hetzelfde het is alleen afhankelijk van waar een z-wave master in staat wat die doet. Hij zoekt dan gewoon naar een Z-Wave master en voert het commando uit wat die krijgt.

De Walli serie heeft wel als voordeel dat die feedback kan geven door middel van licht. Hij knippert geel als die moet gaan pairen of unpairen. In mijn geval stond er geen z-wave apparaat in een pair of unpair stand dus na 30 seconden stopte het zonder dat er iets gewijzigd is.

https://youtu.be/tw79MQj6vxo

Edit: let vooral op de snelheid van het 3 keer klikken achter elkaar. Dat is redelijk vlot namelijk.

[ Voor 3% gewijzigd door DutchKel op 31-05-2023 21:35 ]

Don't drive faster than your guardian angel can fly.


  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
De video is private, dus die kan ik niet zien. Dank trouwens voor al je moeite.

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
EricEric752 schreef op woensdag 31 mei 2023 @ 22:32:
De video is private, dus die kan ik niet zien. Dank trouwens voor al je moeite.
Hij is nu alleen nog maar verborgen, dus als het goed is kun je hem nu wel zien.

Don't drive faster than your guardian angel can fly.


  • emielbf
  • Registratie: Juni 2019
  • Laatst online: 07:51
Als je een sensor/switch/.. geforceerd verwijderd uit HC3, dan is het slim/noodzakelijk om 'm even te resetten voordat ie weer opnieuw zal kunnen pairen.

  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
Op alle FIBARO producten is een Z-Wave uitleer commando ook altijd een volledig reset. Dus uitleer commando via HA is het zelfde universele signaal als via een Home Center.

Om FIBARO producten in uitleer/inleer stand te zetten moet je vrijwel altijd 3x drukken op OF de B-knop of een puls drukker verbonden aan de S1.De meeste modules hebben een ledje wat dan gaat knipperen.

Op de FGS222 is het niet anders, wat vaak fout gaat is de snelheid van drukken. Begin heel snel en dan iets langzamer (je kan 100x drukken :) )

  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Ik heb mijn FGS222 intussen uitgebouwd en vervangen door een Shelly die ik nog had liggen. Dat maakt het wat makkelijker om te expirimenteren, bijvoorbeeld door de FGS222 vlakbij de HC3 te brengen, zodat signaalsterkte problemen uitgesloten kunnen worden.

De snelheid in het filmpje van DutchKel komt overeen met wat ik zelf ook doe. Ik zag ergens dat die 3 keer drukken binnen anderhalve seconde moet zijn en dat haal ik zeker. Volgens de handleiding moet het trouwens exact 3 keer zijn. 100x zou dus niet werken. (99 trouwens wel, maar dan breek je het proces dus 32 keer af... ;) ): CAUTION: Double Relay Switch cancels the "learning" mode after key no. 1 is pressed once. Therefore, pressing key no. 1 four times will not add the devices to the network. The same applies to push-button B.

Mijn basisprobleem blijft hetzelfde. Een factory reset lijkt het gewoon niet te doen en een uitleer ook niet. Ik heb al heel vaak 3 seconden (en 4, 5 etc etc) knop B ingedrukt voor de factory reset en daarna snel 3 keer knop B voor de learning mode. Ook heb ik tussendoor de stroom eraf gehaald. Het blijft maar niet werken en ik had een vergelijkbare ervaring met een andere Fibaro sensor. Nou ja, ik val in herhalingen. Zie mijn lange verhaal hierboven.

Ik heb een hele rits Zigbee en Shelly devices die ik op vergelijkbare manier heb gekoppeld aan HA, zonder enig probleem, dus ik heb best ervaring met dit soort koppelingen, maar na alle (zeer matige) handleidingen door te spitten die er maar te vinden zijn en na alle tips hier (dank!) blijft het voorlopig niet werken.

Ik begin het punt te naderen dat ik gewoon alles maar door Zigbee vervang, want ik wil echt van die HC3 af, maar dat vind ik A toch nog een beetje zonde van mijn geld en B een nederlaag. Na 30 jaar in de ICT moet ik toch @#$% in staat zijn om een stomme sensor te ontkoppelen en te herkoppelen aan HA...

[ Voor 0% gewijzigd door EricEric752 op 01-06-2023 20:05 . Reden: typo ]


  • emielbf
  • Registratie: Juni 2019
  • Laatst online: 07:51
een reset van een fgs222 is: spanning eraf, spanning erop, knopje 3 seconden ingedrukt houden. Die spanning eraf/erop hoort erbij. En dat werkt niet?

  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Dat werkt inderdaad niet. Dat heb ik echt heel vaak geprobeerd. Inclusief spanning eraf,

Hoewel ik me afvraag of de spanning eraf echt nodig is. In de "Reset" instructies (https://manuals.fibaro.com/double-relay-switch/) lijken de disconnect/connect power instructies me meer veiligheidsinstructies te zijn voor stap 2 "Remove the device from the wall switch box". Stap 2 zelf is immers ook niet nodig voor een reset. Tenzij de switch aansluitingen niet aangesloten mogen zijn voor een Reset, maar dat lijkt me heel erg onwaarschijnlijk. Bij mij waren die trouwens niet aangesloten, omdat de FGS222 alleen gebruikt werd om via Z-wave de aangesloten lichten te schakelen. Er was nooit een fysieke schakelaar aangesloten.

  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
EricEric752 schreef op donderdag 1 juni 2023 @ 20:03:
Ik heb mijn FGS222 intussen uitgebouwd en vervangen door een Shelly die ik nog had liggen. Dat maakt het wat makkelijker om te expirimenteren, bijvoorbeeld door de FGS222 vlakbij de HC3 te brengen, zodat signaalsterkte problemen uitgesloten kunnen worden.

De snelheid in het filmpje van DutchKel komt overeen met wat ik zelf ook doe. Ik zag ergens dat die 3 keer drukken binnen anderhalve seconde moet zijn en dat haal ik zeker. Volgens de handleiding moet het trouwens exact 3 keer zijn. 100x zou dus niet werken. (99 trouwens wel, maar dan breek je het proces dus 32 keer af... ;) ): CAUTION: Double Relay Switch cancels the "learning" mode after key no. 1 is pressed once. Therefore, pressing key no. 1 four times will not add the devices to the network. The same applies to push-button B.

Mijn basisprobleem blijft hetzelfde. Een factory reset lijkt het gewoon niet te doen en een uitleer ook niet. Ik heb al heel vaak 3 seconden (en 4, 5 etc etc) knop B ingedrukt voor de factory reset en daarna snel 3 keer knop B voor de learning mode. Ook heb ik tussendoor de stroom eraf gehaald. Het blijft maar niet werken en ik had een vergelijkbare ervaring met een andere Fibaro sensor. Nou ja, ik val in herhalingen. Zie mijn lange verhaal hierboven.

Ik heb een hele rits Zigbee en Shelly devices die ik op vergelijkbare manier heb gekoppeld aan HA, zonder enig probleem, dus ik heb best ervaring met dit soort koppelingen, maar na alle (zeer matige) handleidingen door te spitten die er maar te vinden zijn en na alle tips hier (dank!) blijft het voorlopig niet werken.

Ik begin het punt te naderen dat ik gewoon alles maar door Zigbee vervang, want ik wil echt van die HC3 af, maar dat vind ik A toch nog een beetje zonde van mijn geld en B een nederlaag. Na 30 jaar in de ICT moet ik toch @#$% in staat zijn om een stomme sensor te ontkoppelen en te herkoppelen aan HA...
Voor de module maakt het echt niet uit of je 3-6-9-12-15-etc-99 keer drukt. 3x in het juiste ritme zorgt ervoor dat de module in uitleer/inleer stand gaat.

Alleen dat ritme is per type module echt anders. Doe vanuit mijn werk vrij veel modules inleren en uitleren en het is onmogelijk om dat ritme in een tekst hier te omschrijven.

Enige wat ik me nog kan bedenken is dat je nu zoveel geprobeerd hebt dat je de plastic drukker (onderdeel van de zwarte behuizing) die bovenop de daadwerkelijke knop moet drukken zovaak gebruikt hebt dat hij er net wel net niet goed op zit. Dan kan je ook drukken tot je een ons weegt. Dan is de methode met 3x drukken op de pulsdrukker op S1 een andere optie.

  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Jfwiet schreef op vrijdag 2 juni 2023 @ 11:46:
[...]
Voor de module maakt het echt niet uit of je 3-6-9-12-15-etc-99 keer drukt. 3x in het juiste ritme zorgt ervoor dat de module in uitleer/inleer stand gaat.

Alleen dat ritme is per type module echt anders. Doe vanuit mijn werk vrij veel modules inleren en uitleren en het is onmogelijk om dat ritme in een tekst hier te omschrijven.

Enige wat ik me nog kan bedenken is dat je nu zoveel geprobeerd hebt dat je de plastic drukker (onderdeel van de zwarte behuizing) die bovenop de daadwerkelijke knop moet drukken zovaak gebruikt hebt dat hij er net wel net niet goed op zit. Dan kan je ook drukken tot je een ons weegt. Dan is de methode met 3x drukken op de pulsdrukker op S1 een andere optie.
Ok, goed te horen dat je toch veel vaker kunt drukken. Dat komt niet overeen met de quote uit de handleiding die ik hierboven heb toegevoegd, maar als jij die kennis uit eigen ervaring hebt, dan geloof ik je direct. Ik denk dat de zwarte b knop, fysiek nog wel in orde is. Ik voel een duidelijk klikje als ik erop druk en als dat soort schakelaartjes kapot is voel je dat normaal gesproken niet meer.

  • emielbf
  • Registratie: Juni 2019
  • Laatst online: 07:51
om uit te sluiten de de module kapot is, zou je ook kunnen proberen of ie wel weer toegevoegd kan worden aan de HC3. Is een hele verkeerde kant op, weet ik, maar als je geen oorzaak kunt achterhalen is uitsluiten ook een manier

  • EricEric752
  • Registratie: Augustus 2005
  • Laatst online: 25-09 18:15
Voor degenen die willen weten hoe de sage van mijn FGS-222 is afgelopen: Het is gelukt!

Zoals ik eerder heb beschreven heb werd deze Fibaro schakelaar (net als de meeste anderen die ik heb aangetroffen in dit huis) zonder fysieke schakelaar gebruikt. Er zat dus geen S1 schakelaar aangesloten die ik 3 keer kon drukken. De B-schakelaar (zeg maar de verzonken reset knop) zou volgens de handleiding hetzelfde moeten doen. Die heb ik dus heel vaak ingedrukt (3 keer snel of juist heel lang voor factory reset), maar allemaal zonder resultaat. De schakelaar zat tegen het plafond van de garage aan, redelijk ver van de meterkast waar zowel de HC3 en mijn proxmox server met HA staan. Die afstand zou geen probleem moeten zijn, want de schakelaar werkte immers zonder problemen vanaf die plek.

Om makkelijker te kunnen testen heb ik hem uitgebouwd en er een losse wandcontactschakelaar en een lamp op aangesloten. Zo had ik een draagbaar "lab" wat ik makkelijk kon verplaatsen. Vanaf mijn bureau (Een meter of 6 en 2 deuren van de meterkast ) werkte het nog steeds niet (proberen te pairen en unpairen van zowel de HC3 en HA), maar in de meterkast "pakte" de HC3 opeens. Ik kon de FGS-222 opnieuw toevoegen aan de HC3, weer verwijderen van de HC3 en daarna toevoegen aan HA. Daarna heb ik het hele zaakje weer verplaatst naar mijn bureau en vanaf daar kan ik zonder enige probleem vanuit HA schakelen. De afstand tot de meterkast is dus geen probleem.

Wat er al die tijd fout is gegaan? Geen idee. Misschien luistert die 3 keer klikken heel erg nauw. Misschien werkt het pairen via de B-knop toch anders, hoewel ik me dat niet voor kan stellen. Ik hoop dat ik met mijn "draagbare lab" de andere Fibaro schakelaars in huis nu makkelijker kan overzetten naar HA. Zien is geloven, want deze FGS-222 was de tweede Fibaro schakelaar die ik nu heb gemigreerd naar HA en met de eerste heb ik ook al of een vergelijkbare manier uren lopen tobben. Geen idee waar het aan ligt. Ik zal incompatible zijn met Fibaro, want ik het een hele hoop Zigbee devices die ik allemaal binnen een paar seconden heb gepaird.

Iedereen dank voor het meedenken.

  • emielbf
  • Registratie: Juni 2019
  • Laatst online: 07:51
kijk, dat was het probleem. pairen/unpairen moet je zo dicht mogelijk bij HC3 doen. Voor de werking zelf is afstand niet het probleem, wel voor (un)pairen.

  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
Het in-/uitleer commando gaat volgens mij ook via het Z-Wave netwerk, dus het uitleren zou gewoon moeten werken.

Maar het is altijd te adviseren om eerst in te leren op (zeer) korte afstand tot de HC3 en dan daarna via het Z-Wave menu de Mesh van de apparaten opnieuw te doen. Hoop vage problemen met associaties en parameters zijn daar mee te voorkomen.

Maar bij gekke problemen zou ik het apparaat gewoon lekker bovenop de HC3 leggen om te testen.

  • Hendrik7279
  • Registratie: Oktober 2023
  • Laatst online: 30-10-2023
Ik heb een Philio Tech Bewegingssensor aangeschaft. Ik gebruik een HC 3 Lite. Nu geeft Philio aan dat ik de volgende parameter moet toevoegen:

De bewegingsmelder heeft geentemplate in de FIBARO HC2 en HCL. Om dit op te lossen moet parameter 7 worden toegevoegd met value type 1d en desired value type 22.

Ik zie dat ik dit kan doen in het device onder de tab Parameter. Maar daarna ben ik de weg kwijt. Iemand die dit vaker doet? Weet hoe dit in te stellen is?

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

@Hendrik7279
Dat doe je op de volgende manier:

1. Log in op je HC2 via je brouwser.

2. Zoek het device op in het overzicht devices en klik rechtsboven op de sleutel (steeksleutelsymbool)

3. Tik op het tabblad Advanced.

4. Tik onderaan op Add Parameter.

5. Bij Number vul je 7 in; bij Data Type vul je 1d in; bij desired value vul je 22 in.

6. Druk helemaal rechts in beeld op het blauwe diskette-symbooltje (2e van boven) = save.

Klaar!

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • a.wijdeveld
  • Registratie: Mei 2003
  • Laatst online: 08:18
Kan iemand me helpen hoe 4 temp. sensoren netjes op een FIBARO Smart implant aan te sluiten? Zie de post
a.wijdeveld schreef op maandag 15 januari 2024 @ 19:22:
Iemand ervaring met het aansluiten van meerdere temp. sensoren op een FIBARO Smart Implant?

Ik zit in het hele huis op Z-wave, dus een Shelly is niet logisch, maar praktisch hetzelfde. Ik zoek vooral een layout voor een breadboard om liefst 4 sensoren (2 voor de warmtepomp en 2 voor de zonneboiler leidingen) te combineren met 4,7 kilo-ohm pull-up-weerstand en liefst ook de 12V voeding op de breadboard. Of maak ik het te moeilijk en strip en soldeer ik de 4 sensoren als een bundel en strip ik een oude 12V 2A lader als voeding voor de Smart Implant?

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

a.wijdeveld schreef op maandag 15 januari 2024 @ 21:19:
Kan iemand me helpen hoe 4 temp. sensoren netjes op een FIBARO Smart implant aan te sluiten? Zie de post


[...]
Je maakt het zo wel erg moeilijk. Ik gebruik ook zo’n ding van Fibaro met vier sensoren eraan. Maar dat zijn digitale sensoren: DS18B20. Die zijn niet alleen veel nauwkeuriger, je hebt er ook geen aparte voeding voor nodig. Je hoeft alleen de 3 draadjes aan te sluiten en klaar is kees.

Ik gebruik de waterdichte versie. Gewoon strak met wat isolatietape vastzetten tegen de buis die je wilt meten. Eventueel wat isolatiemateriaal er overheen om de invloed van de omgeving zo klein mogelijk te houden.

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

[ Voor 12% gewijzigd door Hippe Lip op 17-01-2024 23:49 ]

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • Witlof
  • Registratie: Mei 2000
  • Laatst online: 10-10 20:16
Ik gebruik die ook van @Hippe Lip maar dan op de (oude) Fibaro binairy sensor. Ook met tie-wrap bevestigd aan de aanvoer en retour leiding van de verwarming. Een 3e nog als 'omgevingstemperatuur'. Maar werkt inderdaad al een aantal jaar prima.
Iemand hier wellicht ook eens bezig geweest om via Fibaro een automation binnen Home Assistsnt te triggeren middels een rest API call?
Ik kom er niet helemaal uit nog, het zou ongeveer met deze code moeten kunnen:

code:
1
2
3
Calling an automation:
-- Curl
curl \
  -H "Authorization: Bearer YOURTOKENGENERATEDFROMHA" \
  -H "Content-Type: application/json" \
  -d '{"entity_id": "automation.YOURAUTOMATION"}' \
  http://automation.THE_ID_OF_THE_ENTITY_IN_HA:8123/api/services/automation/trigger
 


code:
1
2
-- Lua in a quickapp
  local data =  {entity_id="automation.THE_ID_OF_THE_AUTOMATION_IN_HA"}
  local chauffage = net.HTTPClient():request("http://HA_IP:8123/api/services/automation/trigger",{
      options = {
        method = "POST",
        headers = {
              ["Authorization"] = "Bearer YOURTOKENGENERATEDFROMHA",
              ["Content-Type"] = "application/json"
            },
        data = (json.encode(data))
        
      },
      
      success = function(response) self:debug(json.encode(response)) self:debug(json.encode(data)) end,
      error = function(err) self:error(err) end
    })
 


and for a direct call to update the heating mode of that climate entity:
 
code:
1
2
------- Clever Touch - Change Preset Mode (entity climate) 
-- Curl
curl -X POST \
     -H "Authorization: Bearer YOURTOKENGENERATEDFROMHA" \
     -H "Content-Type: application/json" \
     -d '{"entity_id": "climate.chambre_bleue_chauffage", "preset_mode": "Off"}' \
     "http://HA_IP:8123/api/services/climate/set_preset_mode"
 


code:
1
-- Lua in a quickapp
  local data =  {entity_id="climate.salon_grand_radiateur", preset_mode="Program"}
  local chauffage = net.HTTPClient():request("http://HA_IP:8123/api/services/climate/set_preset_mode",{
      options = {
        method = "POST",
        headers = {
              ["Authorization"] = "Bearer YOURTOKENGENERATEDFROMHA",
              ["Content-Type"] = "application/json"
            },
        data = (json.encode(data))
        
      },
      
      success = function(response) self:debug(json.encode(response)) self:debug(json.encode(data)) end,
      error = function(err) self:error(err) end
   })


Ik werk het liefst vanuit Fibaro maar ik ben met een module aan mijn warmtepomp gedwongen tot MQTT en verzenden en ontvangen van payload wat ook al een kriem is binnen Fibaro/LUA terwijl HA dit native ondersteund.
Nu heb ik binnen HA dus een automation gemaakt die een aantal dingen triggered maar ik wil die hele automation graag aan kunnen roepen vanuit Fibaro middels een device/knop die dan dus eigenlijk een http call moet doen inclusief wat data/json middels een token.

@Joepv jij wellicht ervaring hoe dit te doen vanuit Fibaro ?

  • Joepv
  • Registratie: Mei 2008
  • Laatst online: 15-09 16:28
Is het inmiddels gelukt? Ik ben al heel lang niet meer op Tweakers geweest, dus heb je vraag volledig gemist.

In deze tutorial leg ik uit hoe je in Lua een HTTP request kunt doen. Hier een wat diepere uitleg.

Je code is bijna niet te lezen als oneliners, maar je eerste voorbeeld zou ik zo maken in een Lua Quick App:

Lua:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- Deze kunt je 1x initialiseren in je OnInit functie
self.http = net.HTTPClient({ timeout = 5000 })

-- De POST request
url = "http://HA_IP:8123/api/services/automation/trigger"
-- De payload is nu een JSON string, maar kan ook een Lua table zijn die je converteert...
payload = '{"entity_id=":"automation.THE_ID_OF_THE_AUTOMATION_IN_HA"}'

self.http:request(url, {
    options = {
        headers = {
            ["Authorization"] = "Bearer YOURTOKENGENERATEDFROMHA",
            ["Content-Type"] = "application/json",
        },
        method = "POST",
        data = payload
    },
    success = function(response)
        self:debug(response.data)
    end,
    error = function(message)
        self:debug("error:", message)
    end 
})

Visit my Smart Home Adventure blog at https://docs.joepverhaeg.nl with lots of awesome FIBARO home automation!

Het is alweer even geleden maar naar aanleiding van @Joepv zijn post hierboven ben ik inderdaad bezig geweest om middels HTTP Get requests aan add-on uit te lezen die op mijn warmtepomp actief is.

Voor meer info: Itho WPU5G water/water-warmtepomp ervaringen

Het blijkt dat Fibaro HTTP verschillend behandeld binnen een LUA scéne of binnen een QA.
Ik heb daarom met bovenstaande code nu 5 QuickApps gemaakt die de thermostaten van de ruimtes uit kunnen lezen en dit aan de betreffende kamer koppelt binnen Fibaro.

Dat ziet er dan qua code als volgt uit:

Lua:
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
function QuickApp:ithoStatus()
    self.http:request('http://<ip-adress-add-on>/api.html?get=ithostatus', {
            options = {
                method = 'GET',
            },
            success = function(response)
                --self:debug(response.data)
                local myAwesomeData = json.decode(response.data) 
                --self:debug(myAwesomeData)
                self:updateProperty("value", myAwesomeData["Room 4 temp"])
            end,
            error = function(message)
                self:warning("Cannot connect to the server! (error: " .. message .. ")")
            end
        })

    -- loop elke 5 minuten deze functie
    hub.setTimeout(300000, function()
        self:ithoStatus()
    end)
end

function QuickApp:onInit()
    self:updateProperty("unit", "C")
    self:debug("OnInit ithoStatus by Joep")
    self.http = net.HTTPClient({ timeout = 5000 })
    self:ithoStatus()
end


Ik heb dus een QA Temperature toegevoegd en vervolgens bovenstaande code opgevoerd.
De magie gebeurd eigenlijk bij het ophalen van de data en deze te plaatsen in een lokale tabel en die tabel vervolgens te bevragen met in mijn geval "Room 4 temp" . Die waarde wordt dan gebruikt in de QuickApp en de QA zelf zit in een loop van 5 minuten waardoor ik dus elke 5 minuten de actuele temp te een krijg.
Wellicht inspireert het andere voor ook andere oplossing middels HTTP requests :) .
Door middel van een werkende HTTP GET/POST binnen QA kun je natuurlijk ook andere API's of koppelingen mogelijk maken.

Hieronder een voorbeeld van een HomeAssistant sensor die ik uit wil lezen en beschikbaar wil hebben binnen Fibaro. Ik lees bijvoorbeeld mijn Batterij van mijn elektrische auto uit en zet die in een QuickApp binnen Fibaro:

Lua:
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
function QuickApp:tronnyStatus()
    self.http:request('http://<ip-homeassistant>:8123/api/states/sensor.tronny_primary_engine_percent', {
      options = {
        headers = {
            ['Content-Type'] = 'application / json',
            [ 'Authorization'] = 'Bearer <token>',
        },
        method = "GET"
        },
            success = function(response)
                --self:debug(response.data)
                local tronnyData = json.decode(response.data)
                self:updateProperty("value", tonumber(tronnyData["state"]))
                self:updateView("tronnyBattery", "text", "Batterij %: " .. tronnyData["state"])
                --self:debug(tronnyData["state"])
            end,
            error = function(message)
                self:warning("Cannot connect to the server! (error: " .. message .. ")")
            end
        })

    -- loop elke 5 minuten deze functie
    hub.setTimeout(300000, function()
        self:ithoStatus()
    end)
end

function QuickApp:onInit()
    self:updateProperty("unit", "%")
    self:debug("OnInit tronnyStatus by Maarten")
    self.http = net.HTTPClient({ timeout = 5000 })
    self:tronnyStatus()
end


Binnen HomeAssistant moet je eenmalig een Token aanmaken en deze meegeven in je HTTP Request.]Dit Token maak je aan op de webinterface. Linksonder op je naam klikken en dan rechts helemaal naar beneden: Create Token. Let op, deze token is maar eenmalig zichtbaar. Deze token dien je achter de Bearer te plaatsen.

Inspiratie:

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

Om een sensor/enitity te wijzigen via de RestAPI op HA kun je een HTTP POST opdracht doen, hieronder start ik bijvoorbeeld de climate control op mijn auto via een QuickApp binnen Fibaro:

Lua:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
self.http:request('http://<HA-IP>:8123/api/services/audiconnect/execute_vehicle_action', {
    options={
        method = 'POST',
        headers = {
            ['Content-Type'] = 'application / json',
            [ 'Authorization'] = 'Bearer <TOKEN>‘,
        },
                data = '{"vin": "<vin_nummer>", "action": "start_climatisation"}'
},
    success = function(response)
            self:debug(response.status)
            self:debug(response.data)
    end,
            error = function(message)
                self:warning("Cannot connect to the server! (error: " .. message .. ")")
    end
})
end

[ Voor 24% gewijzigd door GeeMoney op 13-04-2024 08:57 ]

Ik heb ook de garagedeur op een relais switch zitten en heb nu een scéne gemaakt zodat als wij niet thuis zijn en een bezorger belt aan ik in 1 druk het toegangshek en ook de garage op een kier kan zetten en welke automatisch weer sluiten (een andere automatische scene sluit het toegangshek).
Ondertussen wordt ook alles op camera vast gelegd voor de zekerheid :)

Afbeeldingslocatie: https://tweakers.net/i/evGoorznVdYhg3CxnUFkuRV4McU=/x800/filters:strip_exif()/f/image/zgpP44f56RwYzlmYtijXmfq3.png?f=fotoalbum_large

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

En het mooie van Doorbird is dus dat je weer Fibaro scene's kan aanroepen vanuit de app:

Afbeeldingslocatie: https://tweakers.net/i/pZ5DMLNrMbX89SC5bgUd-p20Gew=/x800/filters:strip_icc():strip_exif()/f/image/GUJwI3BNB7TeGhXf3gshqmfV.jpg?f=fotoalbum_large

De meest voorkomende scene's heb ik ook in de Widgets van mijn iPhone gezet en ook voor de zekerheid Siri "Opdrachten" voor gemaakt, altijd handig.

Afbeeldingslocatie: https://tweakers.net/i/5YZ0Q9zR_wHFRdblK91mB6BCeeI=/x800/filters:strip_icc():strip_exif()/f/image/QGzioCZmajlztKADtHqwXmwI.jpg?f=fotoalbum_large

[ Voor 36% gewijzigd door GeeMoney op 03-04-2024 19:05 ]

En ook mijn project van (semi) slim laden maar even posten ter inspiratie.
Omdat ik al 5 jaar een elektrische auto heb met een domme laadpaal (Tesla Wall Charger Gen3) en ik dus ook feitelijk alle info (p1 meter, omvormers) binnen Fibaro beschikbaar heb wilde ik eens kijken of het met wat simpele aanpassingen mogelijk is om een stuk slimmer te gaan laden zonder grote investeringen.

Ik heb daarom een magneet relais automaat gekocht van Hager en deze tussen de paal en mijn krachtgroepautomaat geplaatst zodat ik middels een Fibaro relais/switch het magneet relais aan/uit kan schakelen.

Nu is het dus mogelijk om op afstand of aan de hand van scénes mijn paal/auto te voorzien van elektronen :)

Work in progress maar ik heb de volgende scénes en verklaringen momenteel actief en dat werkt naar tevredenheid tot nu toe.

Afbeeldingslocatie: https://tweakers.net/i/746fh22QbKWwykjEJ3aIsprFxRk=/800x/filters:strip_icc():strip_exif()/f/image/1OERYUqWuunlKSywp4gEQcnG.jpg?f=fotoalbum_large
(wie verzint die plastic railsjes die niet blijven zitten joh :+ .
Afbeeldingslocatie: https://tweakers.net/i/mfza6Q5QBTSrnBJH1es5OB_0mWg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/mXWJJLMA8T0ckfwoIMo7LJr2.png?f=user_large

1ste scéne: Controleer elke 15min de lading en/of range van de auto en bij tekort zet variabele requirescharging op TRUE
2e scéne: Controleer P1 meter op excessief stroom verbruik en stop eventueel het laden van de auto.
3e scéne: Mits auto aan de paal hangt en ik ben thuis en requirescharing == TRUE, ga dan laden tot het minimum percentage en/of range (40% / 110km)
4e scéne: Controleer vroegtijdig bij 37% lading en/of 100km range of we momenteel goedkoop stroom hebben of terug leveren, als dat het geval is, zet continuecharging op TRUE (scéne 3 wordt nu niet getriggered, de auto laad door tot voorbij zijn minimum)
5e scéne: Idem als 4, controleer ditmaal bij 50% en/of 170km range of we goedkoop stroom nog hebben en/of terugleveren anders laden stoppen.
6e scéne: Omdat ik in scéne 5 een interactive push melding heb zitten die mij vraagt of ik ondanks dat we niet terugleveren en geen goedkoop stroom hebben ik wellicht toch wil doorladen ivm een lange verwachte rit ik door middel van die push scéne6 aan kan roepen om toch door te laden tot het limiet van de auto (momenteel 70%).
7e scéne: Bij vertrek zet de laadpaal weer aan voor de volgende keer thuis komst (of ik bouw nog in dat wanneer de auto onder zijn 70% limiet zit en we goedkoop stroom hebben kan ik alsnog de paal weer aan laten schakelen om door te laden.)

Nu nog een scéne maken voor een gast die wilt laden en een trigger maken die alles overruled en de auto geforceerd door laad tot ten minste de limiet van de auto als ik dat wil.

Edit: Inmiddels een eigen QuickApp gemaakt die variabelen/laden kan beïnvloeden en dus ook een gast kan toestaan onherroepelijk te laten laden:

Afbeeldingslocatie: https://tweakers.net/i/J-maPj02xhfnaM_m6WrIv_Q-mMY=/x800/filters:strip_exif()/f/image/Pm2dtipyZTxjBQQxM5JGc36K.png?f=fotoalbum_large

[ Voor 8% gewijzigd door GeeMoney op 22-04-2024 22:00 ]


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
Met een camera die kenteken herkenning ondersteund is dat ook opgelost.
akatar schreef op donderdag 4 april 2024 @ 19:09:
Met een camera die kenteken herkenning ondersteund is dat ook opgelost.
Heb ik ook binnen HA maar is niet sluitend natuurlijk. Ik kan de kabel niet aangesloten hebben namelijk.
Ik ben inmiddels druk met een aantal zaken geweest dus tijd voor een update :)
Mijn warmtepomp is inmiddels helemaal goed uit te lezen ook in Fibaro door middel van de HTTP RestAPI calls te doen richting Home Assistant.
Na het aanschaffen van een Honeywell HGI-80 module is het nu via Home Assistant ook mogelijk om mijn thermostaten uit te lezen en aan te sturen. Dat wilde ik natuurlijk ook weer vanuit Fibaro gaan doen om zodoende met het Climate panel te kunnen werken en eventueel schedules te zetten om onnodig verwarmen/koelen te voorkomen.

Ik gebruik daarvoor wederom de RestAPI van Home Assistant:

Lua:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function QuickApp:setHeatingThermostatSetpoint(value)
    self:updateProperty("heatingThermostatSetpoint", { value= value, unit= "C" })
    self.http:request('http://HA-IP:8123/api/services/climate/set_temperature', {
    options={
        method = 'POST',
        headers = {
            ['Content-Type'] = 'application / json',
            [ 'Authorization'] = 'Bearer <TOKEN>',
        },
                --data = payload
                data = '{"entity_id": "climate.<thermostaat_naam>", "temperature": ' .. tostring(value) .. '}'
},
    success = function(response)
            self:debug(data)
            self:debug(response.status)
            self:debug(response.data)
    end,
            error = function(message)
                self:warning("Cannot connect to the server! (error: " .. message .. ")")
    end 
})
end

Pas even je HA-IP aan, je Bearer TOKEN en in de data regel je thermostaat naam.

Afbeeldingslocatie: https://tweakers.net/i/E4ribaGI9CoTb3s_wm1Ntu-L9TY=/800x/filters:strip_exif()/f/image/XehUS1mPVDrr8bsrGz7QPrzk.png?f=fotoalbum_large

Nu is het mogelijk om schedules te maken per zone/thermostaat:
Afbeeldingslocatie: https://tweakers.net/i/wHImraGtGqzQ1XoQRctVEvc7Lzw=/800x/filters:strip_exif()/f/image/yDkj7OVmbxfiw4NNw0FWFExx.png?f=fotoalbum_large
Op de gezette tijden kan je dus maximaal 4 setpoints zetten gedurende de dag en dit makkelijk clone naar andere dagen in de week.

Ik gebruik het zelf om mijn warmtepomp ook in de nacht zo min mogelijk aan te laten slaan. Ik pas dus een soort nachtverlaging toe. De warmtepomp staat naast onze slaapkamer namelijk en maakt geluid als de compressor aanslaat. Vanwege de hoge isolatie daalt de temperatuur nauwelijks maar door de thermostaten een halve graad te laten zakken weet ik zeker dat hij gedurende de nacht niet snel zal aanslaan.

[ Voor 18% gewijzigd door GeeMoney op 21-04-2024 23:22 ]


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

@GeeMoney
Even uit nieuwsgierigheid: waarom gebruik je Fibaro om je WP aan te sturen en niet HA, als je die toch hebt?

Ik heb ook beide, maar vind HA zó veel eenvoudiger en flexibeler te programmeren dat ik dit soort dingen liever in HA doe.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>

Hippe Lip schreef op woensdag 24 april 2024 @ 00:32:
@GeeMoney
Even uit nieuwsgierigheid: waarom gebruik je Fibaro om je WP aan te sturen en niet HA, als je die toch hebt?

Ik heb ook beide, maar vind HA zó veel eenvoudiger en flexibeler te programmeren dat ik dit soort dingen liever in HA doe.
Ik vind HA helemaal niet veel eenvoudiger, wel flexibeler en dashboarding moet je echt veel tijd in steken om dat er een beetje knap en overzichtelijk uit te laten zien. Daarnaast gaat er ook nog weleens iets stuk met een update. Ik heb verder al 7 jaar aan automation in Fibaro zitten met 50 z-wave devices en wilde ook graag 1 dashboard houden :).

Probeer maar eens binnen 1 minuut 3 verschillende schedules te maken met diverse setpoints op een dag voor 3 verschillende thermostaten. Hierboven zie je het screenshot waarin dit letterlijk binnen 1 minuut standaard al te doen is.

[ Voor 14% gewijzigd door GeeMoney op 24-04-2024 07:09 ]


  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
GeeMoney schreef op woensdag 24 april 2024 @ 07:06:
[...]


Ik vind HA helemaal niet veel eenvoudiger, wel flexibeler en dashboarding moet je echt veel tijd in steken om dat er een beetje knap en overzichtelijk uit te laten zien. Daarnaast gaat er ook nog weleens iets stuk met een update. Ik heb verder al 7 jaar aan automation in Fibaro zitten met 50 z-wave devices en wilde ook graag 1 dashboard houden :).

Probeer maar eens binnen 1 minuut 3 verschillende schedules te maken met diverse setpoints op een dag voor 3 verschillende thermostaten. Hierboven zie je het screenshot waarin dit letterlijk binnen 1 minuut standaard al te doen is.
Je hebt nu alleen een extra component ertussen gezet. Je gebruikt nog steeds home assistant en hebt daar dus een afhankelijkheid in zitten. Zoals je zegt gaat er bij home assistant nogal eens wat kapot, dat kan nu dus nog steeds en dan werkt het nog niet.

Mijn voorkeur gaat ook uit naar home assistant. Ik zou daarbij met de schedules namelijk rekening hebben gehouden met de buitentemperatuur. En ook in home assistant heb ik dit zo in enkele minuten bij elkaar geklikt. Ik denk dat het meer ligt aan de kennis die je ervan wel of niet hebt.

Maar hier heb ik een warmtepomp waarbij het wordt afgeraden om de temperatuur aan te passen. 1 graad aanpassen duurt ongeveer 6 uur als die dat moet verwarmen of afkoelen dus een aanpassing heeft voor mij geen zin.

Je zou home assistant eruit kunnen halen en een virtueel device maken die rechtstreeks met de warmtepomp communiceert. De basis van LUA ken je zo te zien.

Don't drive faster than your guardian angel can fly.

DutchKel schreef op woensdag 24 april 2024 @ 07:51:
[...]

Je hebt nu alleen een extra component ertussen gezet. Je gebruikt nog steeds home assistant en hebt daar dus een afhankelijkheid in zitten. Zoals je zegt gaat er bij home assistant nogal eens wat kapot, dat kan nu dus nog steeds en dan werkt het nog niet.

Mijn voorkeur gaat ook uit naar home assistant. Ik zou daarbij met de schedules namelijk rekening hebben gehouden met de buitentemperatuur. En ook in home assistant heb ik dit zo in enkele minuten bij elkaar geklikt. Ik denk dat het meer ligt aan de kennis die je ervan wel of niet hebt.

Maar hier heb ik een warmtepomp waarbij het wordt afgeraden om de temperatuur aan te passen. 1 graad aanpassen duurt ongeveer 6 uur als die dat moet verwarmen of afkoelen dus een aanpassing heeft voor mij geen zin.

Je zou home assistant eruit kunnen halen en een virtueel device maken die rechtstreeks met de warmtepomp communiceert. De basis van LUA ken je zo te zien.
Dat is de volgende stap inderdaad, ik wil binnen FIbaro met MQTT aan de gang om HA ertussenuit te halen maar dat heeft geen haast.
HA zit ertussen maar "regelt" dus niets. Het is dus redelijk makkelijk troubleshooten. Door ook met de log timestamps te werken is het snel inzichtelijk als een device niet ververst/reageert.
Mijn auto heeft alleen een integratie binnen HA ivm encrypted communicatie wat binnen Fibaro op dit moment nog niet mogelijk is. HA zal ik dus voorlopig houden.

@DutchKel HA kan eigenlijk zo veel op meerdere manieren dat het er niet duidelijker op wordt als je er niet helemaal in thuis bent. Ik ben niet laaiend enthousiast na 3-4 maanden, al helemaal niet voor tante Truus op de hoek die iets met automation wil gaan doen. (Wellicht ook niet de insteek natuurlijk maar goed).

Het is natuurlijk ook geen wedstrijd maar dit is wel het Het Grote Fibaro HomeCenter topic :9 .

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
GeeMoney schreef op woensdag 24 april 2024 @ 08:03:
[...]


Dat is de volgende stap inderdaad, ik wil binnen FIbaro met MQTT aan de gang om HA ertussenuit te halen maar dat heeft geen haast.
HA zit ertussen maar "regelt" dus niets. Het is dus redelijk makkelijk troubleshooten. Door ook met de log timestamps te werken is het snel inzichtelijk als een device niet ververst/reageert.
Mijn auto heeft alleen een integratie binnen HA ivm encrypted communicatie wat binnen nFibaro op dit moment nog niet mogelijk is. HA zal ik dus voorlopig houden.

@DutchKel HA kan eigenlijk zo veel op meerdere manieren dat het er niet duidelijker op wordt als je er niet helemaal in thuis bent. Ik ben niet laaiend enthousiast na 3-4 maanden, al helemaal niet voor tante Truus op de hoek die iets met automation wil gaan doen. (Wellicht ook niet de insteek natuurlijk maar goed).

Het is natuurlijk ook geen wedstrijd maar dit is wel het Het Grote Fibaro HomeCenter topic :9 .
Ik bedoelde het ook niet zo negatief, alleen dat ik home assistant helemaal eruit zou laten dan. Hoe goed en snel je iets voor elkaar krijgt hangt natuurlijk ook af van de kennis die je ervan hebt.

Don't drive faster than your guardian angel can fly.

DutchKel schreef op woensdag 24 april 2024 @ 09:46:
[...]

Ik bedoelde het ook niet zo negatief, alleen dat ik home assistant helemaal eruit zou laten dan. Hoe goed en snel je iets voor elkaar krijgt hangt natuurlijk ook af van de kennis die je ervan hebt.
Zeker, maar logica en duidelijke termen gebruiken en consistent zijn helpt wel natuurlijk.
De meeste “vreemde” zaken worden vaak ontwikkeld op HA of specifieke encryptie of protocollen bijvoorbeeld, dat is waarom mijn auto en de warmtepomp dus wel relatief makkelijk en snel “werken” binnen HA maar niet op Fibaro. Aangezien ik het vooral snel functioneel wilde hebben heb ik ervoor gekozen om tijdelijk die laag ertussen te laten :). En no hard feelings hoor, dit forum is er juist ook om discussies te starten of hints & tips uit te wisselen toch ;).

@DutchKel hier trouwens een warmtepomp van Itho Daalderop die wat eigenaardigheden heeft.
Zo is het verwarmen/koelen "automatisch" op basis van de afwijking op de thermostaten en de warmtevraag.
Als er meer dan 2 graden afwijking is op gemeten temp en gewenste temp dan gaat de pomp in 1 van de 2 modi. Dat is natuurlijk nu in het voor en najaar redelijk beroerd. In de middag valt de zon in de woning en warmt het gemakkelijk 2 graden op en dan gaat de pomp dus direct in koelstand wat nadelig is voor de bron en dat pendelen helpt ook niet om een constante temp aan te houden in huis inderdaad vanwege het na ijlen.
Zo start hij dus om 14:00 uur met koelen maar eer dat dat zijn uitwerking geeft is het avond en de zon dus weg uit de woonkamer en vervolgens gaat hij de hele nacht weer verwarmen :+ .

Door dus met deze schedules het setpoint van de thermostaten naar boven mee te laten bewegen in het voor en najaar zorg ik ervoor dat hij niet op koelen springt en daardoor dus ook in de nacht niet aan de gang gaat.
In de winter doe ik het omgekeerd, hij staat namelijk naast onze slaapkamer (wie verzint het) en zeker mijn vrouw kan er heel slecht van slapen. Nu stuur ik dus overdag aan op genoeg verwarmen in de winter zodat hij in de nacht uit blijft :) .

[ Voor 41% gewijzigd door GeeMoney op 24-04-2024 10:23 ]

Inmiddels ook de socket opgehangen met een microschakelaar erin die ook aan een single switch hangt.
Op deze manier kan ik weten of de kabel in de auto zit of niet.
Als we namelijk de paal in zijn geheel schakelen ben ik ook de connectie met de auto kwijt. Om niet de paal onnodig te schakelen (bijvoorbeeld als er flink overschot is en de auto nog onder zijn vereiste % zit) wilde ik dat alleen doen als de auto er ook nog aan hangt.

Afbeeldingslocatie: https://tweakers.net/i/U5lTlrQj_ai-G4l4OJooomqrtRY=/x800/filters:strip_icc():strip_exif()/f/image/yW0vwMn0aeHXjvZJXRjEb2hp.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/E9eloQlHBdqfoozDZ3aXnLT-WRs=/x800/filters:strip_icc():strip_exif()/f/image/Q0YMFzqOvxHCELB9mqXQiSu1.jpg?f=fotoalbum_large

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

Alle scénes die met slim laden te maken hebben kijken nu ook naar de status van de stekker en niet persé of ik wel of niet thuis ben. Het komt natuurlijk weleens voor dat ik er niet ben maar weg ben zonder de auto die dan nog aan de stekker hangt bijvoorbeeld. In de vorige situatie ging hij dan dus niet "slim" laden. Nu wel.
Inmiddels draait dit nu een kleine 3,5 week zonder problemen. Gisteren is er 2 keer geschakeld en heb ik van de 42kWh opgewekte er 36.3 naar de auto gekregen :) .

inmiddels ook een aardig avontuur achter de rug met een rs485 - eth adapter om mijn zwembad warmtepomp te kunnen uit lezen en besturen.
Ik ga de vertaal slag nog doen om vanuit fibaro direct modbus te praten maar het zit wederom helaas voor nu even in HA. Die doet qua aansturing en dergelijk natuurlijk niets behalve fungeren als gateway. Binnen HA kan je gewoon met decimalen en register benamingen je modbus aanroepen maar binnen Fibaro verwacht hij de volle hex strings en zit je ook met timing, de seriële bus is beperkt en moet sequentieel afgevuurd worden, iets wat HA by default doet als je het onder dezelfde "entiteit" plaatst.

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

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

[ Voor 55% gewijzigd door GeeMoney op 08-05-2024 21:05 ]


  • Soesje
  • Registratie: Mei 2002
  • Laatst online: 05-08-2025

Soesje

is ook zo

Beetje zonde om een eigen draadje te maken als deze er al is!

Op mijn HCL3 werken scenes super traag. Meestal 1-3 minuten en sommige devices worden soms overgeslagen. Het lijkt alsof hij even blijft hangen. Heb de HCL3 net, op mijn 8 jaar oude HCL1 had ik dit niet.

Ik heb 8 Fibaro Dimmer2 en 2 plugs, en alles bevindt zich op een kleine afstand van elkaar.

Details:
  • Alle apparaten hebben de standaardconfiguratie (geen parameters gewijzigd na fabrieksreset).
  • Alle apparaten draaien op de nieuwste firmware.
  • Bij het uitvoeren van scènes (aan, uit of dimmen op x%) duurt het soms 1-3 minuten voordat ze deze afgerond is. Soms voeren 1 of 2 devices helemaal geen actie uit.
  • Ik heb de logs hieronder/als bijlage toegevoegd als voorbeeld. Dit probleem doet zich voor bij alle scènes, of ze nu zijn geconfigureerd via HCL3 in LUA of via de Yubi-app. Er is geen verschil.
Heeft iemand vergelijkbare ervaringen of suggesties om dit probleem op te lossen?

Alvast bedankt voor jullie hulp!
Afbeeldingslocatie: https://tweakers.net/i/SLBSCCxatYfOUA_J7Sw0Yf6QpHQ=/800x/filters:strip_exif()/f/image/uC2tamgvEZNnqoLZwJRLCSuO.png?f=fotoalbum_large
@Soesje heb je toevallig gekozen voor de nieuwe z-wave Engine 3.0 bij het koppelen op je HC3L ?

  • Soesje
  • Registratie: Mei 2002
  • Laatst online: 05-08-2025

Soesje

is ook zo

GeeMoney schreef op zondag 10 november 2024 @ 21:20:
@Soesje heb je toevallig gekozen voor de nieuwe z-wave Engine 3.0 bij het koppelen op je HC3L ?
Dit is misschien wel de gouden tip. Zover ik kan terugvinden zie je niet wat je hebt gekozen in de huidige instellingen. Dus ik ga opnieuw installeren.

  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
Als je een nieuw Z-Wave apparaat probeert in te leren heb je een knop geavanceerd onderaan. Als je in het volgende scherm kan kiezen voor S2 security is het Z-Wave engine 3.0. Als je alleen kan kiezen tussen S0 en S1 dan zit je op Z-Wave engine 2.0.

  • Soesje
  • Registratie: Mei 2002
  • Laatst online: 05-08-2025

Soesje

is ook zo

@GeeMoney je bent een held, de HCL3 had bijna vliegles gekregen vanaf de bovenste verdieping :)

Op z-wave engine 2.0 draait alles als een zonnetje.

@Jfwiet goede tip. Je kan het ook zien bij z-wave in het configuratiescherm, 3.0 heeft meerdere tabbladen. 2.0 heeft een enkel tabblad en de optie met "polling time interval" welke bij 3.0 weer ontbreekt.

[ Voor 40% gewijzigd door Soesje op 11-11-2024 20:48 ]

Voor diegene die een Unifi Protect hebben draaien en middels Webhooks een fibaro scene of device willen triggeren. Dat kan !
https moet ik nog even naar kijken maar plain http werkt in ieder geval:Afbeeldingslocatie: https://tweakers.net/i/_mOSmccS7IxKkjViQpFIJR1CjYk=/800x/filters:strip_exif()/f/image/JlKr5sOQrocKt3r5iFF7S7aA.png?f=fotoalbum_large

Je dient je userid:password even te encoden naar Base64 en dat achter de Basic te laatsen in Header 2.
Encoden kan hier:
https://www.base64encode.org

Bovenste veld bijvoorbeeld fibaro:password123 intypen en druk op ENCODE.
Nu ik een Unifi G4 deurbel heb met bijbehorende PoE Chime merkte ik op dat deze een stuk zachter is dan de vorige Doorbird Chime. Nu kan ik hem theoretisch overal plaatsen middels PoE maar hij hing juist in de gang zodat ik hem boven ook zou horen.
Omdat ik ook Sonos speakers en integratie heb draaien in Fibaro bedacht ik mij dat het toch mogelijk moet zijn om een Chime op de Sonos af te spelen als er op de bel gedrukt wordt.
En natuurlijk blijkt dat mogelijk :)
Een beetje in Beta is de integratie voor de G4 deurbel nog maar de knop kan als sesnor opgevoerd worden en werkt.

G4 Integratie is hier te downloaden:
https://forum.fibaro.com/...-beta-v01/#comment-244871
(Je edit de QA na importeren en vervangt de gegevens voor je eigen gegevens, vaak een UDM of UCG device, niet het IP van de camera opvoeren)

Vervolgens krijg je er 2 devices bij waarvan dus 1 een sensor is voor de Deurbel "ring" knop en de ander een Motion sensor.

Voor Sonos gebruik ik de Sonos Zone Controller:
https://marketplace.fibaro.com/items/sonos-zone-controller
Zorg ervoor dat je een (kort) mp3 bestand hebt die in je Music Library binnen Sonos bereikbaar is. Ik heb mijn hele muziek library ook in Sonos staan dus simpelweg de Chime.mp3 opgevoerd die ik wilde laten hore (6 seconden file)

Daarna kan je een LUA scene maken (geavanceerdere functies voor de Sonos zijn alleen aan te spreken middels LUA en niet via device settings in block scénes.

Conditions/triggers gedeeld:
Lua:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  conditions = { {
      isTrigger = false,
      operator = "==",
      property = "AUTOMATION",
      type = "global-variable",
      value = "TRUE"
    }, {
      id = 932,
      isTrigger = true,
      operator = "==",
      property = "value",
      type = "device",
      value = true
    } },
  operator = "all"
}


Actions:
Lua:
1
hub.call(228, "playFile", "<ip-adres-music-library>/media/Music/Chime.mp3", true, 40)


Ik controleer of mijn variabele AUTOMATION == TRUE is en fals trigger gebruik ik het QA ID van de Deurbel en als die "true" wordt is dat de trigger om vervolgens de actie uit te voeren.
228 is mijn QA ID van mijn Sonos device. Vervolgens de locatie van de Chime.mp3, true betekend dat we eerst een snapshot maken van waar de Sonos mee bezig was, dan voeren we de afspeel actie uit op volume 40 en vervolgens resumed de Sonos weer met waar hij daarvoor mee bezig was eventueel.
Dus stel dat je je Sonos Playbar aanspreekt maar dat er ook TV gekeken wordt op volume 20. Dan mute hij dus de tv, speelt het geluid af op 40 en resumed weer de TV op 20.

  • Soesje
  • Registratie: Mei 2002
  • Laatst online: 05-08-2025

Soesje

is ook zo

Na 1 van de updates vorig jaar is de widget Yubii scenes bij mij weggevallen in iOS. Is er een manier om deze aan de praat te krijgen? Ik krijg soms wel een Siri suggestie voor een shortcut, maar in “shortcuts” staat Yubii ook niet. Werkt dit bij iemand?

Apple / iOS
Widgets enabled in de app (ook al uit- en aangezet)
Soesje schreef op zondag 9 februari 2025 @ 09:57:
Na 1 van de updates vorig jaar is de widget Yubii scenes bij mij weggevallen in iOS. Is er een manier om deze aan de praat te krijgen? Ik krijg soms wel een Siri suggestie voor een shortcut, maar in “shortcuts” staat Yubii ook niet. Werkt dit bij iemand?

Apple / iOS
Widgets enabled in de app (ook al uit- en aangezet)
Helaas, ze werken aan app updates “zo zeggen ze” .
Maar het komt door de update van iOS naar 18. Traditionele widgets werken daar niet meer en ze moeten de apps dus updaten maar dat laat erg op zich wachten. Hier is dat ook momenteel het grootste irritatiepunt. Ik gebruikte ze alleen maar eigenlijk.

  • Soesje
  • Registratie: Mei 2002
  • Laatst online: 05-08-2025

Soesje

is ook zo

GeeMoney schreef op zondag 9 februari 2025 @ 10:20:
[...]


Helaas, ze werken aan app updates “zo zeggen ze” .
Maar het komt door de update van iOS naar 18. Traditionele widgets werken daar niet meer en ze moeten de apps dus updaten maar dat laat erg op zich wachten. Hier is dat ook momenteel het grootste irritatiepunt. Ik gebruikte ze alleen maar eigenlijk.
Ja same. Maar Siri vraagt soms wel of ik een scene wil uitvoeren, die werkt dan ook. Alleen de app komt niet voor in shortcuts. Hoopte dat er een alternatief was op de widgets. Thx!

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
Ik heb sinds kort (ongeveer 2 weken) dat de Philips hue bridge niet meer verbonden is met de Fibaro Home Center 3. Als ik hem opnieuw probeer te verbinden dan lukt dat niet.

To be able to use Hue, new user needs to be registered. To do so, you need to press button on the bridge and than within 30s press "Create user" button below.

Dus eerst op de hue bridge grote knop drukken en erna op create user. De hue bridge heeft een vast ip adres die volgens de app nog steeds klopt.

Het resultaat is: Current State:
Connection timeout error.

Zijn er meer die dit probleem hebben of een oplossing hiervoor hebben? Ik gebruik de Walli Controllers om de Philips Hue lampen aan te zetten dus de koppeling is voor mij wel redelijk belangrijk.

Don't drive faster than your guardian angel can fly.


  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
Welke QA gebruik je om te koppelen? Heb zelf die van Petrk een tijd gebruikt. In die QA kon je de verbinding herstarten.

Maar als het totaal niet meer functioneert dan is het helaas wel wat werk, maar verwijderen en opnieuw instellen...

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
Jfwiet schreef op donderdag 13 maart 2025 @ 11:17:
Welke QA gebruik je om te koppelen? Heb zelf die van Petrk een tijd gebruikt. In die QA kon je de verbinding herstarten.

Maar als het totaal niet meer functioneert dan is het helaas wel wat werk, maar verwijderen en opnieuw instellen...
Ik heb geen idee welke QA het precies is. Ik voeg hem toe via Voeg apparaat toe en dan kies ik Ander Apparaat

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

Don't drive faster than your guardian angel can fly.


  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
Ja dat is de integratie/Quick App van FIBARO zelf.

https://forum.fibaro.com/...ll-in-one/#comment-216725

Dat is de QA die ik gebruikt heb, zit ook meer functionaliteit in.

Dit is ook een hele populaire: https://forum.fibaro.com/files/file/396-childrenofhue/

  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
Na een hele lange stilte qua niewe devices, komt aeotec met de siren 7.
Komen er verder nog nieuwe devices uit van diverse fabrikanten of blijft het hierbij?
akatar schreef op dinsdag 5 augustus 2025 @ 20:26:
Na een hele lange stilte qua niewe devices, komt aeotec met de siren 7.
Komen er verder nog nieuwe devices uit van diverse fabrikanten of blijft het hierbij?
Fibaro is inmiddels “Nice” . En die heeft onder andere nieuwe intercom/camera’s gelanceerd maar volgens mij zijn dat onder water stiekem rebranded ander spul.
Ze zijn verder druk bezig de apps en software te vernieuwen qua look & feel en ivm de overgang naar Nice heb ik het idee dan nieuwe devices te ontwikkelen. Wat er is op Z-Wave gebied althans werkt al wel verrassend goed en is energie zuinig.

Wat volgens mij echt beter moet is zorgen dat ze goede developers binnen halen en dat ook de QuickApp’s beter en meer van de grond komen voor bijvoorbeeld native integraties met grote spelers. Denk aan slimme laadpalen, auto apps, warmtepompen etc.

Dat is nu toch vaak geknutsel of met externe “proxies” als Home Assistant ernaast omdat het native niet kan maar op HomeAssistant wel een batterij developers is die die code maken/onderhouden. Al gaat dat ook vaak gepaard met breaking changes maar goed. De mogelijkheid is er in ieder geval.

Ik mis mijn Audi integratie in Fibaro en doe dat dus nu via Home Assistant net als modbus naar mijn Fairland warmtepomp.

  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
GeeMoney schreef op dinsdag 5 augustus 2025 @ 20:33:
[...]


Fibaro is inmiddels “Nice” . En die heeft onder andere nieuwe intercom/camera’s gelanceerd maar volgens mij zijn dat onder water stiekem rebranded ander spul.
Ze zijn verder druk bezig de apps en software te vernieuwen qua look & feel en ivm de overgang naar Nice heb ik het idee dan nieuwe devices te ontwikkelen. Wat er is op Z-Wave gebied althans werkt al wel verrassend goed en is energie zuinig.

Wat volgens mij echt beter moet is zorgen dat ze goede developers binnen halen en dat ook de QuickApp’s beter en meer van de grond komen voor bijvoorbeeld native integraties met grote spelers. Denk aan slimme laadpalen, auto apps, warmtepompen etc.

Dat is nu toch vaak geknutsel of met externe “proxies” als Home Assistant ernaast omdat het native niet kan maar op HomeAssistant wel een batterij developers is die die code maken/onderhouden. Al gaat dat ook vaak gepaard met breaking changes maar goed. De mogelijkheid is er in ieder geval.

Ik mis mijn Audi integratie in Fibaro en doe dat dus nu via Home Assistant net als modbus naar mijn Fairland warmtepomp.
Klopt, die brengen dezelfde devices uit onder de naam nice, alleen iets nieuws zie ik nog niet komen.
De qa (plugins) blijven een beetje in de hobbyhoek, hoe goed de plugins ook zijn, het is (voor zover ik weet) niet mogelijk om de gebruiker een paar vragen te stellen om de qa in te stellen qua settings.

  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
er is toch een modbus integratie?
akatar schreef op dinsdag 5 augustus 2025 @ 20:41:
er is toch een modbus integratie?
Modbus RTU over TCP zijn een paar QA's van die 7 tientjes per stuk kosten van een Poolse vent ofzo maar niet lijken te doen wat ik zoek.
Ik wil gewoon een device over tcp aan kunnen spreken en registers kunnen uitlezen en wijzigen. Het is mij nog niet gelukt in ieder geval al heb ik er ook niet veel tijd aan besteed nog.

Soms is de developer van de betreffende QA ook te vinden op het forum van Fibaro.
Zo is het mij gelukt om 2 QA's met specifieke settings te krijgen die in mijn situatie uitkomst boden.

@Soesje de nieuwe Yubii app staat weer Widgets toe in iOS18 !

[ Voor 20% gewijzigd door GeeMoney op 05-08-2025 20:51 ]


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
@GeeMoney

Ik meende dat Joep iets met modbus deed of de tibbler dev?

  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
Jij zit vast nog wel op dat discord channel, daar lopen ze beiden
akatar schreef op dinsdag 5 augustus 2025 @ 21:35:
Jij zit vast nog wel op dat discord channel, daar lopen ze beiden
zit ik en laatst nog een balletje opgegooid maar ze doen geen rtu over tcp helaas.

  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
GeeMoney schreef op dinsdag 5 augustus 2025 @ 21:41:
[...]


zit ik en laatst nog een balletje opgegooid maar ze doen geen rtu over tcp helaas.
Ik loop er al een tijd niet meer maar kon me niet voorstellen dat ze weg zouden zijn :)

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

Hét grote voordeel van Fibaro vind ik dat het zo stabiel is. Ik heb hier een systeem van inmiddels zo’n 10 jaar oud en heb er de laatste jaren echt nix aan gedaan. Het blijft gewoon doen wat het moet doen en langzaam aan begin ik me af te vragen wanneer ik de eerste storing(en) tegen ga komen. Niet dat ik ze wens, maar gaat al zo lang goed…

En dat hoef je met Home Assistant niet te proberen. Dat gebruik ik nu ook zo’n 10 jaar, maar als ik een paar maanden geen onderhoud gepleegd heb, dan bezorg ik mezelf af en toe een flinke bult werk omdat ik uit moet zoeken welke dingen er nu weer veranderd zijn, nieuwe notaties in yaml, functies erbij maar zeker ook eraf en meer. Dat is daar nou weer wat jammer aan HA…

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
@Hippe Lip
Same here, mijn fibaro is rock steady, mijn home assistant (yellow) is altijd wel iets mee. Zigbee stopt er elke 2 a 3 dagen wel mee, terwijl die ingebouwd zit op de yellow.

Dus hier draait alles wat belangrijk is op de hc3 en de rest op ha en hs.

  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
Ik postte in maart nog dat ik problemen had met de Philips Hue apparaten via de Hue integratie, dit heeft zichzelf automatisch opgelost met een firmware update ongeveer 1 maand geleden.

Ik had er helemaal niks meer aan gedaan totdat mijn vrouw per ongeluk op een schakelaar drukte die een aantal Philips Hue spotjes zou aanzetten. Tot onze verbazing werkte die knop ineens weer. Toen ben ik eens gaan nadenken en het enige wat ik ervoor in het weekend had gedaan was een firmware update uitgevoerd. Dus ik neem aan dat daar ook de fix bij zat voor de Philips Hue integratie.

Don't drive faster than your guardian angel can fly.


  • icecreamfarmer
  • Registratie: Januari 2003
  • Laatst online: 07-10 14:14

icecreamfarmer

en het is

Ik heb meerdere fibaro switch 2's maar bij eentje weigert hij scenes mee te sturen.
Config is hetzelfde als bij alle anderen al paar keer factory reset gedaan maar hij blijft alleen maar keyhold en keyreleased sturen. Bij alle anderen doet hij ook 2xpress en 3x press. Unit is rechtstreeks verbonden met de controller (geen hops) en config 28 en 29 staan op 15.

Iemand nog andere ideeen want met AI kom ik er ook niet meer uit.

ik zie ik zie wat jij niet ziet


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

@icecreamfarmer
Helaas geen ervaring mee. Ik heb maar één Fibaro HC2.
Heb je dit punt voorgelegd op het forum van Fibaro zelf? Dat lijkt me de geëigende plaats?

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • DutchKel
  • Registratie: Mei 2002
  • Laatst online: 09:34
Is de firmware ook hetzelfde van de switch 2?

En heb je de andere niet via de instellingen gezet op scène controller? Als ik een switch reset dan gaat die standaard op schakelaar. Ik weet niet hoe je ze instelt maar bij HC3 zit het bij het tabje geavanceerd onderaan.

Don't drive faster than your guardian angel can fly.


  • icecreamfarmer
  • Registratie: Januari 2003
  • Laatst online: 07-10 14:14

icecreamfarmer

en het is

DutchKel schreef op woensdag 1 april 2026 @ 20:52:
Is de firmware ook hetzelfde van de switch 2?

En heb je de andere niet via de instellingen gezet op scène controller? Als ik een switch reset dan gaat die standaard op schakelaar. Ik weet niet hoe je ze instelt maar bij HC3 zit het bij het tabje geavanceerd onderaan.
Ik kan het nog eens nalopen maar ze zouden allemaal hetzelfde geconfigureerd moeten zijn met momentary switches en scenes actief.

ik zie ik zie wat jij niet ziet


  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 08-10 10:18
Firmware van de single switch is al jaren en jaren dezelfde. Dus dat zal het niet zijn. Begreep nou niet of je een HC2 of HC3 had. Je geeft aan dat de waarde van parameter 28 en 29 15 is, dat is de juiste waarde. Als je een HC3 hebt dan zie je misschien wel ergens die waarde, maar hebben ze dat niet met selectie vakjes gemaakt? (heb geen Single switch in gebruik, alleen dimmers) en dan moet je ze dus allemaal selecteren.

Je zegt ook, ik heb deze switch factory reset. De single switch is een van de meest vervelende qua drukken om in te leren enzovoort. Uitleren en inleren via de Home Center is ook altijd een volledige factory reset (edit: alle Fibaro apparaten doen een factory reset bij uitleren/inleren, producten van derden is dat niet altijd het geval). En dat is wat duidelijker met Home Center omdat die aan geeft dat er iets gebeurt is en dat is veel duidelijker dan het juiste led lichtje.

[ Voor 7% gewijzigd door Jfwiet op 02-04-2026 09:17 ]


  • icecreamfarmer
  • Registratie: Januari 2003
  • Laatst online: 07-10 14:14

icecreamfarmer

en het is

Jfwiet schreef op donderdag 2 april 2026 @ 09:16:
Firmware van de single switch is al jaren en jaren dezelfde. Dus dat zal het niet zijn. Begreep nou niet of je een HC2 of HC3 had. Je geeft aan dat de waarde van parameter 28 en 29 15 is, dat is de juiste waarde. Als je een HC3 hebt dan zie je misschien wel ergens die waarde, maar hebben ze dat niet met selectie vakjes gemaakt? (heb geen Single switch in gebruik, alleen dimmers) en dan moet je ze dus allemaal selecteren.

Je zegt ook, ik heb deze switch factory reset. De single switch is een van de meest vervelende qua drukken om in te leren enzovoort. Uitleren en inleren via de Home Center is ook altijd een volledige factory reset (edit: alle Fibaro apparaten doen een factory reset bij uitleren/inleren, producten van derden is dat niet altijd het geval). En dat is wat duidelijker met Home Center omdat die aan geeft dat er iets gebeurt is en dat is veel duidelijker dan het juiste led lichtje.
Opgelost. Had bij deze de gira pulsdrukker niet goed geïnstalleerd.
Op 1 of andere maniet kan die op 2 manieren functioneren en als je hem op de bovenste contacten aansluit dan werkt hij niet echt als pulsdrukker.

Bij alle andere wel onder aangesloten.

Blijkbaar zit er een trappenhuisfunctie op.
https://katalog.gira.de/nl-NL/datenblatt/315100

ik zie ik zie wat jij niet ziet

Het is weer even geleden maar ik heb weer een paar mooie toevoegingen en vorderingen gemaakt.

Inmiddels mijn Doorbird camera's/intercom's vervangen voor Unifi varianten. (Unifi Intercom en Unifi G4) en een robot stofzuiger met dweilfunctie opgevoerd en mijn Bellfire Mertik openhaard opgevoerd !

Voor de Unifi Intercom heb ik geen beeld binnen Fibaro maar wel kan ik de gate-hub aanspreken die gekoppeld is aan de intercom om zodoende mijn toegangshek te kunnen bedienen vanuit Fibaro.
Fibaro is daar leidend in, de status van het hek, openen en sluiten wordt allemaal door Fibaro scene's geregeld.
Unifi Geofencing gebruik ik om API calls naar de Fibaro af te vuren omdat Fibaro/Yubii en Geofencing heel slecht werkt, ben ik blijkbaar ook niet de enige in. Blijft toch gek dat ze dat soort functionaliteit niet knap krijgen.

Voor het hekwerk heb ik een QuickApp gemaakt die de diverse functies aan kan roepen:
Lua:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
-- QuickApp: UniFi Access Gate Control (3-button mode)
-- Device type: com.fibaro.multilevelSwitch (gives Open/Close/Stop-style UI)

function QuickApp:onInit()
  self:debug("UniFi Access Gate QuickApp started")

  self.host   = self:getVariable("unifi_host")    -- e.g. "192.168.1.10"
  self.port   = self:getVariable("unifi_port")    -- e.g. "12445"
  self.token  = self:getVariable("unifi_token")   -- API token
  self.doorId = self:getVariable("unifi_door_id") -- gate/door ID

  self:startStatusLoop()
  self:refreshStatus()
end

function QuickApp:startStatusLoop()
  self:refreshStatus()
  fibaro.setTimeout(30000, function()  -- polls every 30 seconds
    self:startStatusLoop()
  end)
end

-- Core call: PUT /doors/:id/unlock?control_cmd=open|close|stop
function QuickApp:sendGateCommand(cmd)
  local url = "https://" .. self.host .. ":" .. self.port ..
              "/api/v1/developer/doors/" .. self.doorId ..
              "/unlock?control_cmd=" .. cmd

  local http = net.HTTPClient()
  http:request(url, {
    options = {
      method = "PUT",
      headers = {
        ["Authorization"] = "Bearer " .. self.token,
        ["Content-Type"]  = "application/json"
      },
      data = json.encode({
        actor_name = "Fibaro HC3",
        actor_id   = "fibaro-hc3-gate"
      }),
      checkCertificate = false,  -- self-signed local cert
      timeout = 5000
    },
    success = function(response)
      self:debug("Gate " .. cmd .. " -> " .. response.status .. " " .. response.data)
            -- Update the global variable based on the command sent
      if cmd == "close" then
        fibaro.setGlobalVariable("Toegangshek", "Closing")
        self:updateView("gateStatus", "text", "Hekwerk is gesloten")
        self:updateProperty("log", "Status: Gesloten")
        fibaro.setTimeout(26000, function()
        fibaro.setGlobalVariable("Toegangshek", "Closed")  
        end)
      elseif cmd == "open" then
        fibaro.setGlobalVariable("Toegangshek", "Opening")
        self:updateView("gateStatus", "text", "Hekwerk is open")
        self:updateProperty("log", "Status: Open")
        fibaro.setTimeout(26000, function()
        self:sendGateCommand("stop")
        end)
        fibaro.setTimeout(260000, function()
        fibaro.setGlobalVariable("Toegangshek", "Open")  
        end)
      elseif cmd == "stop" then
        self:refreshStatus()  
        fibaro.setTimeout(130000, function()
        self:refreshStatus()  
        end)
      end
      
      self:refreshStatus()
    end,
    error = function(err)
      self:error("Gate " .. cmd .. " failed: " .. err)
    end
  })
end

function QuickApp:refreshStatus()
    local status = fibaro.getGlobalVariable("Toegangshek")
    if status == "Closed" then
        self:updateProperty("secured", 255)
        self:updateProperty("log", "Status: Gesloten")
    else
        self:updateProperty("secured", 0)
        self:updateProperty("log", "Status: Open")
    end
end
-- === UI Action Handlers ===
function QuickApp:turnOn()   -- "Open" button
  self:trace("Open pressed")
  self:sendGateCommand("open")
end

function QuickApp:turnOff()  -- "Close" button
  self:trace("Close pressed")
  self:sendGateCommand("close")
end

function QuickApp:stop()     -- "Stop" button (add as custom action in QuickApp UI)
  self:trace("Stop pressed")
  self:sendGateCommand("stop")
end

-- Compatibility handler for integrations/scenes that call "secure"
function QuickApp:secure()
  self:trace("Secure/Open pressed")
  self:sendGateCommand("close")
end

-- Compatibility handler for integrations/scenes that call "unsecure"
function QuickApp:unsecure()
  self:trace("Secure/Open pressed")
  self:sendGateCommand("open")
end
In mijn geval laat ik mijn hek open als er iemand thuis is, vandaar de actie "open" en 26seconden later de stop functie. Dit zorgt ervoor dat mijn hek open blijft, daarbij zet ik dus een global variabele om binnen Fibaro om zodoende een actuele status te hebben die je makkelijk kan gebruiken. (Ik heb een automatische scène die Unifi raadpleegt of devices aanwezig zijn en die moet niet te snel triggeren anders sluit hij direct het hek weer. Er zit dus bewust een korte delay tussen status “opening” en “open” .

Onderstaande code heb ik gebruikt om mijn Mertik Wifi adapter van mijn gashaard aan te sturen. Die doet exact hetzelfde als de Wi-Fi app/afstandsbediening.
Er zit een auto off timer in die je middels een QuickApp variabele zelf kan beïnvloeden maar default staat hij op 120 minuten, dan gaat de haard uit tenzij je tussentijds vlamhoogte aanpast, dan telt hij weer opnieuw af. (Het is meer uit veiligheid)
Daarnaast heb ik een extra scene gemaakt die de woonkamer thermostaat in de gaten houd en bij warmer dan 23 graden en/of openhaard aan een push notificatie stuurt of het klopt en of hij anders de haard moet uitschakelen.
Lua:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
----------------------------------------------------------------------------------
-- Mertik Wi-Fi for Barbas Bellfires fireplace integration
-- Version 0.0.8 (cleaned up: single-shot on/off, persistent socket, auto-off)
----------------------------------------------------------------------------------
-- DISCLAIMER:
-- USING THIS QUICK APP IS ENTIRELY AT YOUR OWN RISK! CONTROLLING A GAS FIREPLACE
-- WITH REVERSED ENGINEERED CODE CAN CAUSE UNEXPECTED BEHAVIOR!
----------------------------------------------------------------------------------
__TAG = "QA" .. plugin.mainDeviceId
_VERSION = "0.08"

PREFIX = "0233303330333033303830"

function string.fromhex(str)
  return (str:gsub('..', function (cc) return string.char(tonumber(cc, 16)) end))
end

function string.tohex(str)
  return (str:gsub('.', function (c) return string.format('%02X', string.byte(c)) end))
end

function bufferFrom(str,base)
  return str:gsub("(%d%d)",function(d) return string.char(tonumber(d,base)) end)
end

-- Sends a command over a persistent, reused TCP socket (reconnected on each
-- call). This connection style is required by the receiver - a fresh socket
-- per command was tried and did not reliably work.
function QuickApp:send(strToSend, callback)
  self.sock:connect(self.IPv4, 2000, {
    success = function()
      self:debug("Connected to Mertik Wi-Fi device...")
      self.sock:write(strToSend, {
        success = function()
          self:debug("Data sent to device...")
          self.sock:read({
            success = function(data)
              self:debug("Response: " .. tostring(data))
              self.sock:close()
              if callback then callback(true, data) end
            end,
            error = function(err)
              self:error("Error reading data: ", err)
              self.sock:close()
              if callback then callback(false, err) end
            end
          })
        end,
        error = function(err)
          self:error("Error while sending data: ", err)
          if callback then callback(false, err) end
        end
      })
    end,
    error = function(message)
      self:error("Connection error: ", message)
      if callback then callback(false, message) end
    end,
  })
end

-- Builds a flame-height command. level: 0 (off) to 10 (max).
-- On this receiver, level 0 fully closes the gas valve when sent as a single
-- isolated command - it must NOT be preceded by other flame-height commands
-- in quick succession (a stepped ramp-down was tried and did not reliably
-- close the valve, likely due to rapid reconnects on the shared socket).
function QuickApp:buildFlameCommand(level)
  level = math.max(0, math.min(10, math.floor(level)))
  local levelChar = string.format("%X", level)              -- '0'-'9' or 'A'
  local levelCode = string.format("%02X", string.byte(levelChar))
  local msg = "31" .. levelCode .. "03"
  return bufferFrom(PREFIX .. msg, 16)
end

function QuickApp:setFlameHeight(level, callback)
  self:debug("Setting flame height to level " .. level .. "/10")
  local packet = self:buildFlameCommand(level)
  self:send(packet, function(ok, data)
    if ok then
      self.currentLevel = level
      self:updateProperty("value", level * 10)  -- reflect as 0-100 for a slider UI
    else
      self:error("Failed to set flame height to " .. level .. ": " .. tostring(data))
    end
    if callback then callback(ok) end
  end)
end

-- ===== Auto-off timer =====
-- Uses a generation counter instead of relying on a timer-cancel API, so it
-- works reliably regardless of firmware quirks: every time a new timer is
-- scheduled, the generation increments, and any older pending callback checks
-- whether it's still current before firing. This makes "reschedule" and
-- "cancel" both trivial and safe even with several rapid calls in a row.
function QuickApp:scheduleAutoOff()
  self.autoOffGen = (self.autoOffGen or 0) + 1
  local myGen = self.autoOffGen
  local minutes = tonumber(self:getVariable("AutoOffMinutes")) or 0
  if minutes > 0 then
    self:debug("Auto-off scheduled in " .. minutes .. " minute(s)")
    fibaro.setTimeout(minutes * 120 * 1000, function()
      if myGen == self.autoOffGen then
        self:debug("Auto-off timer fired, turning fireplace off")
        self:turnOff()
      end
    end)
  end
end

function QuickApp:cancelAutoOff()
  self.autoOffGen = (self.autoOffGen or 0) + 1  -- invalidates any pending timer
end

-- Callable action to set/select the auto-off duration (minutes). 0 disables it.
-- Wire this to a UI select/button row (callback name "setAutoOff") if your
-- QuickApp interface supports it, or just edit the AutoOffMinutes QuickApp
-- Variable directly from the device's Variables panel.
function QuickApp:setAutoOff(minutes)
  minutes = tonumber(minutes) or 0
  self:setVariable("AutoOffMinutes", tostring(minutes))
  self:debug("Auto-off set to " .. minutes .. " minute(s)" .. (minutes == 0 and " (disabled)" or ""))
  -- If the fireplace is currently on, apply the new duration immediately.
  if (self.currentLevel or 0) > 0 then
    self:scheduleAutoOff()
  end
end

function QuickApp:turnOn()
  self:debug("Turn fireplace on and set max flame height...")
  self:setFlameHeight(10)
  self:scheduleAutoOff()
end

function QuickApp:turnOff()
  self:debug("Turn fireplace off...")
  self:cancelAutoOff()
  self:setFlameHeight(0, function(ok)
    if not ok then
      self:error("Turn-off command failed to send/confirm - flame may not be off. Retry manually.")
    end
  end)
end

-- Fires when the flame-height slider moves (needs device type com.fibaro.multilevelSwitch)
function QuickApp:setValue(value)
  local level = math.floor((tonumber(value) or 0) / 10)  -- map 0-100 slider to 0-10 protocol levels
  self:setFlameHeight(level)
  if level > 0 then
    self:scheduleAutoOff()
  else
    self:cancelAutoOff()
  end
end

function QuickApp:onInit()
  self:debug("Mertik Wi-Fi for Barbas Bellfires fireplace integration v" .. _VERSION)
  self.IPv4 = self:getVariable("IPv4")
  self.sock = net.TCPSocket()
  self.currentLevel = 0
  self.autoOffGen = 0
  -- One-time migration: force AutoOffMinutes to 60 the first time this
  -- version runs, even if it already existed (e.g. as "0" from earlier
  -- testing). After this runs once, it's never touched again automatically -
  -- so if you later set it to 0 yourself to disable auto-off, it'll stay 0.
  if self:getVariable("AutoOffDefaultApplied") == "" then
    self:setVariable("AutoOffMinutes", "120")
    self:setVariable("AutoOffDefaultApplied", "yes")
    self:debug("Applied one-time default: AutoOffMinutes = 120")
  end
  -- Reflect the current value in a UI select/slider if one is bound. Replace
  -- "autoOffSelect" with your actual UI element's name from the Interface tab.
  -- This is wrapped in pcall since it will error harmlessly if no such
  -- element exists yet.
  pcall(function()
    self:updateView("autoOffSelect", "value", self:getVariable("AutoOffMinutes"))
  end)
end
De Dreame QA ben ik nog aan het testen maar die gebruikt HA om de diverse functies aan te spreken.
Plaatjes van de devices:
Afbeeldingslocatie: https://tweakers.net/i/3pIyvZMYV1E1bRgXINMj7Y8GRt8=/232x232/filters:strip_exif()/f/image/z7F9eF6EBlqPfwcRJp7VwaAj.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/_e-ZGeKrRFI6lq1OmTD1ZVp0LbA=/232x232/filters:strip_exif()/f/image/RriunXrVKcrkiwvYeky60TnO.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/xtCIHruG723G9Ezeny8QzjB2Lsg=/232x232/filters:strip_exif()/f/image/F485Q6P7fpHrnRv9bRZ1dRW6.png?f=fotoalbum_tile
Afbeeldingslocatie: https://tweakers.net/i/Q5P2BdFlMH7MuWp_kICqzxl_Aro=/232x232/filters:strip_exif()/f/image/rdCTq2qfLknsWTHIVygR07qL.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/rObVimNcPDbKzlx7iO-X_ZunrtA=/232x232/filters:strip_exif()/f/image/TnmUCJD1vgt82jmR4ukIvDXu.png?f=fotoalbum_tile

[ Voor 14% gewijzigd door GeeMoney op 16-09-2026 23:39 ]


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
@GeeMoney

Goed bezig!

Als Fibaro een keer een grote stap voorwaarts wil maken mogen ze wel een keer beginnen/opschieten met matter ondersteuning, of misschien dat dit een sellingpoint wordt voor home center 4?

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

akatar schreef op donderdag 17 september 2026 @ 14:46:
@GeeMoney

Goed bezig!

Als Fibaro een keer een grote stap voorwaarts wil maken mogen ze wel een keer beginnen/opschieten met matter ondersteuning, of misschien dat dit een sellingpoint wordt voor home center 4?
Dat doet me denken aan de vraag hoe dat gaat bij een overstap. Ik gebruik nu al ruim 10 jaar een HC2. Als ik naar een nieuw model zou overstappen, moet ik daar dan alles opnieuw met de hand in zetten? Er zijn nogal wat componenten in inbouwdozen ingebouwd en die moet ik dan allemaal openmaken om te resetten en bij de nieuwe HC aanmelden?
En alle programmeringen en zo moet ik handmatig opnieuw opbouwen?

Ik verbaas me er al jaren over dat er geen externe back-up te maken is. Hoe mooi zou het zijn als die wel te maken is en dat die dan bovendien in te lezen is in een andere/ nieuwe HC?

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>

Hippe Lip schreef op donderdag 17 september 2026 @ 20:50:
[...]

Dat doet me denken aan de vraag hoe dat gaat bij een overstap. Ik gebruik nu al ruim 10 jaar een HC2. Als ik naar een nieuw model zou overstappen, moet ik daar dan alles opnieuw met de hand in zetten? Er zijn nogal wat componenten in inbouwdozen ingebouwd en die moet ik dan allemaal openmaken om te resetten en bij de nieuwe HC aanmelden?
En alle programmeringen en zo moet ik handmatig opnieuw opbouwen?

Ik verbaas me er al jaren over dat er geen externe back-up te maken is. Hoe mooi zou het zijn als die wel te maken is en dat die dan bovendien in te lezen is in een andere/ nieuwe HC?
Externe back-up kan wel op de HC3 en ook inlezen maar van een HC2 naar HC3 moet je naar mijn weten al je devices inderdaad opnieuw inleren.
vanaf een bepaalde firmware op je HC2 en HC3 is er een migratie optie!
Wel met wat nadelen. Zoals ik hieronder al schreef kunnen scene's en virtual devices niet mee.
Ook is de migratie onomkeerbaar, eenmaal naar de HC3 kun je dus niet meer terug.

Scenes en virtual devices en lua zijn heel anders en kunnen daarom niet 1 op 1 over.

Ik heb destijds ervoor gekozen om opnieuw te beginnen en alles goed na te lopen wat ik wel en niet wilde meenemen of zaken die ik gelijk aan wilde pakken om te verbeteren.

[ Voor 11% gewijzigd door GeeMoney op 17-09-2026 21:17 ]


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

GeeMoney schreef op donderdag 17 september 2026 @ 21:11:
[...]
vanaf een bepaalde firmware op je HC2 en HC3 is er een migratie optie!
Vanaf welke FW? En is elke HC2 daarnaar te upgraden?

Waar vind ik meer info daarover?

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
Hippe Lip schreef op donderdag 17 september 2026 @ 20:50:
[...]

Dat doet me denken aan de vraag hoe dat gaat bij een overstap. Ik gebruik nu al ruim 10 jaar een HC2. Als ik naar een nieuw model zou overstappen, moet ik daar dan alles opnieuw met de hand in zetten? Er zijn nogal wat componenten in inbouwdozen ingebouwd en die moet ik dan allemaal openmaken om te resetten en bij de nieuwe HC aanmelden?
En alle programmeringen en zo moet ik handmatig opnieuw opbouwen?

Ik verbaas me er al jaren over dat er geen externe back-up te maken is. Hoe mooi zou het zijn als die wel te maken is en dat die dan bovendien in te lezen is in een andere/ nieuwe HC?
Je moet voor jezelf eens nadenken of je het de moeite waard vind, volgens mij heeft de hc2 een zwave 300 chip en de hc3 een 500, hiermee zijn er meer mogelijkheden zoals is er bv het centralscene command beschikbaar.

Tevens heeft de hc2 ook niet het eeuwige leven en kan je of overgaan in je eigen tempo of wachten tot deze het begeeft en dan moet alles ineens snel gebeuren.

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

Precies omdat mijn HC2 al ruim 10 jaar oud is, zit ik na te denken wat ik wil: verder (en dan met een HC3) of stoppen. Ik gebruik er steeds minder van.

Een heleboel dingen doe ik op Home Assistant. Het voordeel daarvan is dat het veel flexibeler is en veel meer kan. Ik heb daar inmiddels zó veel op gebouwd dat ik echt niet meer zonder kan.
Het nadeel is dat het bepaald geen ‘set-and-forget’ systeem is, wat de Fibaro HC2/3 wel is.

Twijfel alom dus.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
@Hippe Lip

Dat is ook het voordeel van een homecenter, set and forget. Homeassistant is een beetje een dreinend kind, als je er een tijdje geen aandacht aan besteed, gaat het mis. (ik gebruik ook beide)

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

@akatar
En zo vullen die twee elkaar aan én verschillen ze als dag en nacht op een heleboel punten.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>

@Hippe Lip daarom heb ik ze ook beide maar ik probeer primair Fibaro zoveel mogelijk in te zetten en gebruik HA alleen als “proxy” voor functionaliteit die niet/lastig in Fibaro te krijgen is wegens gebrek aan ondersteuning van bijvoorbeeld authenticatiemiddelen richting bekende cloud diensten.
Mijn Dreame/Segway bijvoorbeeld (oAuth)en mijn thuis thermostaten lopen weer over Ramses-II via een USB gateway dat soort zaken is onmogelijk naar Fibaro te brengen.

Ik gebruik dus ook een combinatie maar vind de stabiliteit en “simpele” interface van de Fibaro veel handiger dan continu die breaking changes in HA na zowat elke update.

Vereiste firmware levels zijn trouwens:
HC2 needs to be on firmware 4.581 Beta or newer, the HC3 needs to be at 5.021.38 or newer.

[ Voor 26% gewijzigd door GeeMoney op 19-09-2026 13:31 ]


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

@GeeMoney
Ik zit op V4.630, dus die backup zou moeten lukken. Binnenkort dan toch maar eens tijd aan spenderen om uit te zoeken hoe.

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

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>

Hier is dan de Dreame QA die dus naar HomeAssistant kijkt en uiteindelijk daar de settings doorvoert om de robotstofzuiger aan het werk te zetten.
Het is helaas niet mogelijk om binnen de QA de Dreame cloud service rechtstreeks aan te spreken.

Vanwege het formaat moet ik hem opknippen:
Ik heb 2 global variabele. Mijn HA_IP en mijn HA_Bearer . Staan verderop in de code.
Ik heb die in een globale var gezet zodat ik hem vanuit elk script aan kan roepen en ik hem maar op 1 plek hoef te wijzigen.
Daarnaast zie je bovenin de vacuüm.stoffie . stoffie zo heet mijn dreame, die entity zal je dus even uit HA moeten halen.
Daarnaast is het makkelijk om een Debug knop aan te maken, die zit ook in de code en dan kan je heel makkelijk alle return codes zien en/of errors.

Veel zaken zijn makkelijk te controleren in je HA door even naar Settings -> Developer Tools -> States te gaan en dan je entity of sensor in te kloppen. Dan krijg je alle opties te zien.
Lua:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
--[[
=======================================================================
 Dreame Vacuum <-> Home Assistant QuickApp for Fibaro HC3
=======================================================================
 What this does:
   - Polls a Home Assistant "vacuum" entity (your Dreame robot, exposed
     via the HACS Dreame integration) over the HA REST API.
   - Shows: current status, whether it's cleaning, whether it's
     mopping, whether the current run was started by a schedule,
     battery level, and (optionally) whether it needs maintenance
     (low consumables: brushes / filter / mop pads).
   - Buttons to Start / Pause / Return to dock.
   - A Debug button that dumps the full raw entity JSON to the log,
     so you can find the exact attribute names your integration uses.

 SETUP:
   1. Create a new QuickApp on your HC3 (Devices -> + -> Add device ->
      Other devices -> Generic Device), then replace the default
      template code with this whole file, and Save.
   2. The header --%%u: lines at the top are NOT reliably auto-applied
      by every HC3 firmware when pasting into a fresh Generic Device
      template. If, after saving, the device has no label/buttons,
      add them manually in the device's UI editor (not the code tab):
        - six LABELS with ids: status, cleaning, mopping, scheduled,
          battery, attention (each on its own line/row of the UI)
        - a row of BUTTONS with ids: startCleaning, pauseCleaning,
          returnToDock (each wired to call the QuickApp method of the
          same name on click / onReleased)
        - a row of MODE BUTTONS: setModeSweep, setModeMop, setModeBoth
          (optionally also setModeMopAfterSweep), wired the same way
        - a row of ROOM BUTTONS: one per room you want a quick-clean
          button for, e.g. cleanOffice, cleanLivingRoom, cleanKitchen
          (add more by copying the pattern in the code + a button)
        - one BUTTON with id: debugDump (wired the same way)
   3. Fill in the variables in the "USER CONFIG" section below.
   4. Save & Start/Restart the QuickApp. Check the log for the first
      poll result; the label should populate within a few seconds.
   5. If "Mopping" / "Scheduled" don't reflect reality, press the
      "Debug: dump entity" button, look at the logged JSON, and
      tell me the attribute + value you see, so I can tune the
      matching logic to your integration.
=======================================================================
]]

--%%name:Dreame Vacuum (HA)
--%%type:com.fibaro.genericDevice
-- NOTE: --%%u: UI-generating header lines were intentionally removed.
-- On this firmware they appear to get (re-)applied on code save and
-- can create duplicate UI elements that collide with ones configured
-- manually in the device's UI editor, causing button taps to silently
-- do nothing. All UI elements for this QuickApp must be added by hand
-- in the UI editor - see the SETUP notes above.

-------------------------------------------------------------------
-- USER CONFIG - fill these in
-------------------------------------------------------------------
-- HA_IP and HA_Bearer are NOT set here - they are read from HC3
-- Global Variables (Panels -> Variables) named "HA_IP" and
-- "HA_Bearer". Create those two global variables on your HC3 first
-- and fill them with your Home Assistant IP and Long-Lived Access
-- Token respectively.
local HA_PORT      = "8123"                  -- Home Assistant port

-- The Dreame vacuum's object_id in Home Assistant - i.e. whatever
-- comes after "vacuum." in its entity id (vacuum.stoffie -> "stoffie").
-- All other entity ids below (select, sensors) are derived from this
-- automatically, since the Dreame HACS integration names every
-- related entity "<domain>.<VACUUM_NAME>_<thing>".
local VACUUM_NAME = "stoffie"

local VACUUM_ENTITY             = "vacuum." .. VACUUM_NAME
local CLEANING_MODE_ENTITY      = "select." .. VACUUM_NAME .. "_cleaning_mode"
local SUCTION_LEVEL_ENTITY      = "select." .. VACUUM_NAME .. "_suction_level"
local CLEANING_ROUTE_ENTITY     = "select." .. VACUUM_NAME .. "_cleaning_route"
local SELECTED_MAP_ENTITY       = "select." .. VACUUM_NAME .. "_selected_map"
local CLEANING_PROGRESS_ENTITY  = "sensor." .. VACUUM_NAME .. "_cleaning_progress"
local SELF_CLEAN_TIME_ENTITY    = "number." .. VACUUM_NAME .. "_self_clean_time"

local HA_USE_HTTPS         = true   -- true = https://, false = http://
local HA_IGNORE_CERT_ERRORS = true  -- set true if HA uses a self-signed certificate

local HA_SCHEME = HA_USE_HTTPS and "https" or "http"

-- Optional: consumable/maintenance sensors exposed by the integration.
-- Leave the table empty ( {} ) to skip maintenance checking entirely.
-- Derived from VACUUM_NAME the same way - uncomment the ones you want.
local CONSUMABLE_ENTITIES = {
  ["Main brush"] = "sensor." .. VACUUM_NAME .. "_main_brush_time_left",
  ["Side brush"] = "sensor." .. VACUUM_NAME .. "_side_brush_time_left",
  ["Filter"]     = "sensor." .. VACUUM_NAME .. "_filter_time_left",
  ["Sensor"]     = "sensor." .. VACUUM_NAME .. "_sensor_dirty_time_left",
  ["Wheel"]      = "sensor." .. VACUUM_NAME .. "_wheel_dirty_time_left",
}
local MAINTENANCE_THRESHOLD = 10  -- % remaining life below which we flag "needs attention"

-- IDs of the 3 dropdown ("Select") UI elements you added, so we can
-- push the vacuum's *current* setting into them on every poll (and
-- right after you change one). These must exactly match the "ID"
-- field you set for each dropdown in the UI editor - e.g. the
-- default auto-generated ones look like "select_ID_10". Check yours
-- and update these three lines to match.
local CLEANING_MODE_UI_ID  = "select_ID_10"
local SUCTION_LEVEL_UI_ID  = "select_ID_11"
local CLEANING_ROUTE_UI_ID = "select_ID_12"
local SELECTED_MAP_UI_ID   = "select_ID_13" 

-- ID of an OPTIONAL slider UI element for mop washing time (10-50
-- minutes, per your device's min/max). Only needed if you add a
-- Slider element - the preset buttons below work without it.
local SELF_CLEAN_TIME_UI_ID = "selfCleanTimeSlider"

-- This firmware's Slider element is fixed at a 0-100 range with no
-- editable min/max, but the real device only accepts 10-50 minutes.
-- These two functions map between the slider's 0-100 position and
-- the actual minutes value, so slider-left = 10 min, slider-right =
-- 50 min, instead of most of the slider's travel being invalid.
local SELF_CLEAN_TIME_MIN = 10
local SELF_CLEAN_TIME_MAX = 50

local function sliderToMinutes(sliderValue)
  sliderValue = math.max(0, math.min(100, tonumber(sliderValue) or 0))
  local minutes = SELF_CLEAN_TIME_MIN + (sliderValue / 100) * (SELF_CLEAN_TIME_MAX - SELF_CLEAN_TIME_MIN)
  return math.floor(minutes + 0.5)
end

local function minutesToSlider(minutes)
  minutes = tonumber(minutes) or SELF_CLEAN_TIME_MIN
  local sliderValue = (minutes - SELF_CLEAN_TIME_MIN) / (SELF_CLEAN_TIME_MAX - SELF_CLEAN_TIME_MIN) * 100
  return math.floor(sliderValue + 0.5)
end

-- Room name -> segment id, GROUPED BY MAP/FLOOR, since the same
-- room name can have a different segment id per floor (e.g.
-- "Corridor" exists on all 3 floors with different ids). The outer
-- keys must exactly match the "Map/floor" dropdown's option values
-- (select.<name>_selected_map). Segment ids come straight from the
-- "rooms" attribute of the vacuum entity - re-check there if you
-- rename/add rooms on the robot later.
local ROOMS_BY_MAP = {
  ["Begane Grond"] = {
    ["Office"]      = 1,
    ["Living Room"] = 2,
    ["Corridor"]    = 3,
    ["Dining Hall"] = 4,
    ["Kitchen"]     = 5,
  },
  ["1ste verdieping"] = {
    ["Slaapkamer 1"]  = 1,
    ["Slaapkamer 2"] = 3,
    ["Slaapkamer 3"]   = 4,
    ["Corridor"]          = 5,
    ["Bathroom"]          = 6,
  },
  ["2e verdieping"] = {
    ["Bathroom"]          = 1,
    ["Corridor"]          = 2,
    ["Closet"]            = 3,
    ["Ouders Slaapkamer"] = 4,
  },
}

local POLL_INTERVAL = 20  -- seconds between polls
-------------------------------------------------------------------


-- Like self:updateView, but silently does nothing if the target UI
-- element doesn't exist (e.g. you removed an optional label/dropdown
-- from the UI editor). Prevents log warnings from piling up.
function QuickApp:safeUpdateView(id, prop, value)
  pcall(function() self:updateView(id, prop, value) end)
end

function QuickApp:onInit()
  self:debug("Dreame HA QuickApp starting...")
  self.http = net.HTTPClient()

  -- Read connection details from HC3 Global Variables instead of
  -- hardcoding them in the code.
  self.ipaddr = hub.getGlobalVariable("HA_IP")
  self.token  = hub.getGlobalVariable("HA_Bearer")

  if not self.ipaddr or self.ipaddr == "" then
    self:error("Global Variable 'HA_IP' is missing or empty - please create/fill it")
  end
  if not self.token or self.token == "" then
    self:error("Global Variable 'HA_Bearer' is missing or empty - please create/fill it")
  end

  self.info = {
    status = "-", cleaning = "-", mopping = "-",
    scheduled = "-", battery = "-", attention = "n/a", mode = "-",
    selfCleanTime = "-", map = "-"
  }
  self:renderLabel()
  self:updateData()
end

-- Pushes each field to its own label. Labels don't render HTML in
-- this widget, so we use separate label elements instead of <br>.
function QuickApp:renderLabel()
  local i = self.info
  self:safeUpdateView("status", "text", "Status: " .. tostring(i.status))
  self:safeUpdateView("mode", "text", "Program: " .. tostring(i.mode))
  self:safeUpdateView("cleaning", "text", "Cleaning: " .. tostring(i.cleaning))
  self:safeUpdateView("mopping", "text", "Mopping: " .. tostring(i.mopping))
  self:safeUpdateView("scheduled", "text", "Scheduled task: " .. tostring(i.scheduled))
  self:safeUpdateView("battery", "text", "Battery: " .. tostring(i.battery) .. "%")
  self:safeUpdateView("attention", "text", "Needs attention: " .. tostring(i.attention))
  self:safeUpdateView("washTime", "text", "Mop wash time: " .. tostring(i.selfCleanTime) .. " min")
  self:safeUpdateView("map", "text", "Map/floor: " .. tostring(i.map))
end

-------------------------------------------------------------------
-- Generic HA REST helpers
-------------------------------------------------------------------

function QuickApp:haGet(path, callback)
  local url = HA_SCHEME .. "://" .. self.ipaddr .. ":" .. HA_PORT .. "/api/" .. path
  self.http:request(url, {
    options = {
      method = "GET",
      checkCertificate = not HA_IGNORE_CERT_ERRORS,
      headers = {
        ["Authorization"] = "Bearer " .. self.token,
        ["Content-Type"] = "application/json"
      }
    },
    success = function(response)
      if response.status == 200 then
        local ok, data = pcall(json.decode, response.data)
        if ok then
          callback(data)
        else
          self:error("JSON decode error on " .. path .. ": " .. tostring(data))
          callback(nil)
        end
      else
        self:error("HA API GET " .. path .. " returned status " .. tostring(response.status))
        callback(nil)
      end
    end,
    error = function(err)
      self:error("HA API GET " .. path .. " failed: " .. tostring(err))
      callback(nil)
    end
  })
end

function QuickApp:haCallService(domain, service, entityId, extra)
  local url = HA_SCHEME .. "://" .. self.ipaddr .. ":" .. HA_PORT .. "/api/services/" .. domain .. "/" .. service
  local body = { entity_id = entityId }
  if extra then
    for k, v in pairs(extra) do body[k] = v end
  end
  local payload = json.encode(body)
  self.http:request(url, {
    options = {
      method = "POST",
      checkCertificate = not HA_IGNORE_CERT_ERRORS,
      headers = {
        ["Authorization"] = "Bearer " .. self.token,
        ["Content-Type"] = "application/json"
      },
      data = payload
    },
    success = function(response)
      self:debug("Called service " .. domain .. "." .. service .. " -> status " .. tostring(response.status))
      -- refresh state shortly after issuing a command
      fibaro.setTimeout(2500, function() self:updateData() end)
    end,
    error = function(err)
      self:error("Service call " .. domain .. "." .. service .. " failed: " .. tostring(err))
    end
  })
end
Lua:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
-------------------------------------------------------------------
-- Main polling / status logic
-------------------------------------------------------------------

function QuickApp:updateData()
  self:haGet("states/" .. VACUUM_ENTITY, function(data)
    if data then
      self:processVacuumState(data)
    end
    self:checkMaintenance()
  end)

  self:syncSelectDropdowns()
  self:syncSelfCleanTime()

  -- schedule next poll
  fibaro.setTimeout(POLL_INTERVAL * 1000, function() self:updateData() end)
end

-- Fetches the current mop washing/self-clean time (minutes) and
-- reflects it in the label and (if you added one) the slider.
function QuickApp:syncSelfCleanTime()
  self:haGet("states/" .. SELF_CLEAN_TIME_ENTITY, function(data)
    if data and data.state then
      self.info.selfCleanTime = data.state
      self:safeUpdateView(SELF_CLEAN_TIME_UI_ID, "value", tostring(minutesToSlider(data.state)))
      self:renderLabel()
    end
  end)
end

-- Fetches the current value of the 3 select entities (cleaning mode,
-- suction level, cleaning route) and pushes it into the matching
-- dropdown UI element, so the dropdowns always reflect what's
-- actually set on the robot - whether changed from this QuickApp,
-- the Dreame app, an automation, or a schedule.
function QuickApp:syncSelectDropdowns()
  self:haGet("states/" .. CLEANING_MODE_ENTITY, function(data)
    if data and data.state then
      self:safeUpdateView(CLEANING_MODE_UI_ID, "value", data.state)
      self.info.mode = data.state
      self:renderLabel()
    end
  end)
  self:haGet("states/" .. SUCTION_LEVEL_ENTITY, function(data)
    if data and data.state then
      self:safeUpdateView(SUCTION_LEVEL_UI_ID, "value", data.state)
    end
  end)
  self:haGet("states/" .. CLEANING_ROUTE_ENTITY, function(data)
    if data and data.state then
      self:safeUpdateView(CLEANING_ROUTE_UI_ID, "value", data.state)
    end
  end)
  self:haGet("states/" .. SELECTED_MAP_ENTITY, function(data)
    if data and data.state then
      self:safeUpdateView(SELECTED_MAP_UI_ID, "value", data.state)
      self.info.map = data.state
      self:renderLabel()
    end
  end)
end

function QuickApp:processVacuumState(data)
  local state = tostring(data.state or "unknown")
  local attr = data.attributes or {}

  -- Is it actively cleaning at all?
  -- HA "vacuum" domain standard states: cleaning, docked, idle, paused,
  -- returning, error. Some Dreame integrations also report the more
  -- detailed status inside attributes (e.g. attr.status).
  local detailedStatus = tostring(attr.status or attr.cleaning_mode or state):lower()
  local isCleaning = (state == "cleaning") or detailedStatus:find("clean") ~= nil
                       or detailedStatus:find("sweep") ~= nil or detailedStatus:find("mop") ~= nil

  -- Is it mopping? Dreame integrations typically expose this via
  -- attr.cleaning_mode or attr.status with values like "mopping" /
  -- "sweeping_and_mopping".
  local modeString = tostring(attr.cleaning_mode or attr.status or ""):lower()
  local isMopping = isCleaning and modeString:find("mop") ~= nil

  -- Was the current run started by a schedule?
  -- Common attribute names seen across integrations: started_by,
  -- start_type, cleaning_start_type. Values often include "schedule"
  -- or "timer".
  local startedBy = tostring(attr.started_by or attr.start_type or attr.cleaning_start_type or ""):lower()
  local isScheduled = isCleaning and (startedBy:find("sched") ~= nil or startedBy:find("timer") ~= nil)

  -- Battery
  local battery = attr.battery_level or attr.battery or "?"

  self.info.status    = attr.status and tostring(attr.status) or state
  self.info.cleaning  = isCleaning and "Yes" or "No"
  self.info.mopping   = isMopping and "Yes" or "No"
  self.info.scheduled = isScheduled and "Yes" or "No"
  self.info.battery   = tostring(battery)
  self:renderLabel()

  -- Store latest known values for use by updateLog()
  self.isCleaning     = isCleaning
  self.isMopping      = isMopping
  self.currentStatus  = self.info.status
  self.currentBattery = battery

  self:updateLog()

  self:debug(string.format(
    "state=%s status=%s cleaning=%s mopping=%s startedBy=%s battery=%s",
    state, tostring(attr.status), tostring(isCleaning), tostring(isMopping),
    tostring(startedBy), tostring(battery)
  ))
end

-- Updates the short status line shown directly on the device tile on
-- the dashboard (not just inside the detail view). While a clean is
-- running, it also fetches the live cleaning progress sensor and
-- appends it, e.g. "Cleaning - 84% (mopping) 42% done".
function QuickApp:updateLog()
  local logLine = tostring(self.currentStatus) .. " - " .. tostring(self.currentBattery) .. "%"

  if not self.isCleaning then
    self:updateProperty("log", logLine)
    return
  end

  logLine = logLine .. (self.isMopping and " (mopping)" or " (cleaning)")

  self:haGet("states/" .. CLEANING_PROGRESS_ENTITY, function(data)
    if data and data.state then
      local progress = tonumber(data.state)
      if progress then
        logLine = logLine .. " - " .. tostring(progress) .. "% done"
      end
    end
    self:updateProperty("log", logLine)
  end)
end

-------------------------------------------------------------------
-- Maintenance / "requires cleaning" (consumables) check
-------------------------------------------------------------------

function QuickApp:checkMaintenance()
  local entities = {}
  for name, id in pairs(CONSUMABLE_ENTITIES) do
    table.insert(entities, { name = name, id = id })
  end

  if #entities == 0 then
    self.info.attention = "n/a (no consumable sensors configured)"
    self:renderLabel()
    return
  end

  local remaining = #entities
  local needsAttention = false
  local lowItems = {}

  for _, e in ipairs(entities) do
    self:haGet("states/" .. e.id, function(data)
      remaining = remaining - 1
      if data then
        local val = tonumber(data.state)
        if val and val < MAINTENANCE_THRESHOLD then
          needsAttention = true
          table.insert(lowItems, e.name .. " (" .. tostring(val) .. "%)")
        end
      end
      if remaining == 0 then
        local text = needsAttention and "Yes" or "No"
        if needsAttention then
          text = text .. " - " .. table.concat(lowItems, ", ")
        end
        self.info.attention = text
        self:renderLabel()
      end
    end)
  end
end

-------------------------------------------------------------------
-- Button actions
-------------------------------------------------------------------

function QuickApp:startCleaning()
  self:debug("Start pressed")
  self:haCallService("vacuum", "start", VACUUM_ENTITY)
end

function QuickApp:pauseCleaning()
  self:debug("Pause pressed")
  self:haCallService("vacuum", "pause", VACUUM_ENTITY)
end

function QuickApp:returnToDock()
  self:debug("Return to dock pressed")
  self:haCallService("vacuum", "return_to_base", VACUUM_ENTITY)
end

-------------------------------------------------------------------
-- Cleaning mode buttons (vacuum / mop / both)
-- Sets the mode via HA's select entity, then it applies to whatever
-- cleaning run you start next (press Start after picking a mode).
-------------------------------------------------------------------

function QuickApp:setModeSweep()
  self:debug("Set mode: sweeping")
  self:haCallService("select", "select_option", CLEANING_MODE_ENTITY, { option = "sweeping" })
end

function QuickApp:setModeMop()
  self:debug("Set mode: mopping")
  self:haCallService("select", "select_option", CLEANING_MODE_ENTITY, { option = "mopping" })
end

function QuickApp:setModeBoth()
  self:debug("Set mode: sweeping_and_mopping")
  self:haCallService("select", "select_option", CLEANING_MODE_ENTITY, { option = "sweeping_and_mopping" })
end

function QuickApp:setModeMopAfterSweep()
  self:debug("Set mode: mopping_after_sweeping")
  self:haCallService("select", "select_option", CLEANING_MODE_ENTITY, { option = "mopping_after_sweeping" })
end

-------------------------------------------------------------------
-- Suction power buttons
-- Valid options confirmed from HA: quiet, standard, strong, turbo
-------------------------------------------------------------------

function QuickApp:setSuctionQuiet()
  self:debug("Set suction level: quiet")
  self:haCallService("select", "select_option", SUCTION_LEVEL_ENTITY, { option = "quiet" })
end

function QuickApp:setSuctionStandard()
  self:debug("Set suction level: standard")
  self:haCallService("select", "select_option", SUCTION_LEVEL_ENTITY, { option = "standard" })
end

function QuickApp:setSuctionStrong()
  self:debug("Set suction level: strong")
  self:haCallService("select", "select_option", SUCTION_LEVEL_ENTITY, { option = "strong" })
end

function QuickApp:setSuctionTurbo()
  self:debug("Set suction level: turbo")
  self:haCallService("select", "select_option", SUCTION_LEVEL_ENTITY, { option = "turbo" })
end
Lua:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
-------------------------------------------------------------------
-- Mopping intensity / cleaning route buttons
-- Valid options confirmed from HA: quick, standard, intensive, deep
-------------------------------------------------------------------

function QuickApp:setRouteQuick()
  self:debug("Set cleaning route: quick")
  self:haCallService("select", "select_option", CLEANING_ROUTE_ENTITY, { option = "quick" })
end

function QuickApp:setRouteStandard()
  self:debug("Set cleaning route: standard")
  self:haCallService("select", "select_option", CLEANING_ROUTE_ENTITY, { option = "standard" })
end

function QuickApp:setRouteIntensive()
  self:debug("Set cleaning route: intensive")
  self:haCallService("select", "select_option", CLEANING_ROUTE_ENTITY, { option = "intensive" })
end

function QuickApp:setRouteDeep()
  self:debug("Set cleaning route: deep")
  self:haCallService("select", "select_option", CLEANING_ROUTE_ENTITY, { option = "deep" })
end

-------------------------------------------------------------------
-- OPTIONAL: dropdown ("Select") alternative
-- Instead of 4 buttons per category, you can add ONE "Select"-type
-- UI element per category (Choose type -> Select, if your firmware
-- offers it) with the option list below, wired to the matching
-- callback. This replaces setModeSweep/setModeMop/etc.,
-- setSuctionQuiet/etc., and setRouteQuick/etc. with 3 dropdowns
-- total instead of 12 buttons.
--
-- NOTE: the exact way HC3 passes the chosen value to the callback
-- can vary slightly by firmware. If self.debug below doesn't show
-- the value you expect, add this at the top of the function:
--   self:debug(json.encode(event))
-- to see the real event structure, then adjust event.values[1]
-- below to match (e.g. it might be event.value instead).
-------------------------------------------------------------------

function QuickApp:onCleaningModeSelected(event)
  local option = event.values and event.values[1] or event.value
  self:debug("Dropdown - cleaning mode selected: " .. tostring(option))
  self:haCallService("select", "select_option", CLEANING_MODE_ENTITY, { option = option })
end

function QuickApp:onSuctionLevelSelected(event)
  local option = event.values and event.values[1] or event.value
  self:debug("Dropdown - suction level selected: " .. tostring(option))
  self:haCallService("select", "select_option", SUCTION_LEVEL_ENTITY, { option = option })
end

function QuickApp:onCleaningRouteSelected(event)
  local option = event.values and event.values[1] or event.value
  self:debug("Dropdown - cleaning route selected: " .. tostring(option))
  self:haCallService("select", "select_option", CLEANING_ROUTE_ENTITY, { option = option })
end

function QuickApp:onSelectedMapSelected(event)
  local option = event.values and event.values[1] or event.value
  self:debug("Dropdown - map/floor selected: " .. tostring(option))
  self:haCallService("select", "select_option", SELECTED_MAP_ENTITY, { option = option })
end

-------------------------------------------------------------------
-- Mop washing / self-clean time (number entity, range ~10-50 min)
-- Use EITHER a Slider UI element wired to onSelfCleanTimeChanged,
-- OR the 3 preset buttons below - whichever fits your UI better.
-------------------------------------------------------------------

function QuickApp:onSelfCleanTimeChanged(event)
  local raw = event.value or (event.values and event.values[1])
  raw = tonumber(raw)
  if not raw then
    self:error("Could not read a numeric value from the slider event")
    return
  end
  local minutes = sliderToMinutes(raw)
  self:debug("Set mop wash time (slider " .. tostring(raw) .. " -> " .. minutes .. " min)")
  self:haCallService("number", "set_value", SELF_CLEAN_TIME_ENTITY, { value = minutes })
end

function QuickApp:setWashTimeShort()
  self:debug("Set mop wash time: 10 min")
  self:haCallService("number", "set_value", SELF_CLEAN_TIME_ENTITY, { value = 10 })
end

function QuickApp:setWashTimeStandard()
  self:debug("Set mop wash time: 25 min")
  self:haCallService("number", "set_value", SELF_CLEAN_TIME_ENTITY, { value = 25 })
end

function QuickApp:setWashTimeLong()
  self:debug("Set mop wash time: 50 min")
  self:haCallService("number", "set_value", SELF_CLEAN_TIME_ENTITY, { value = 50 })
end

-------------------------------------------------------------------
-- Room cleaning: buttons and/or a dropdown
-- Calls the Dreame integration's custom service to clean specific
-- room(s) only. Resolves the room name against whichever floor/map
-- is CURRENTLY ACTIVE (self.info.map, kept in sync automatically by
-- syncSelectDropdowns) - so make sure the robot is on the right
-- floor/map before triggering a room clean.
-------------------------------------------------------------------

function QuickApp:cleanRoom(roomName)
  local currentMap = self.info.map
  local mapRooms = ROOMS_BY_MAP[currentMap]
  if not mapRooms then
    self:error("No rooms configured for current map '" .. tostring(currentMap) .. "' - check ROOMS_BY_MAP, or wait for the map label to sync")
    return
  end
  local segmentId = mapRooms[roomName]
  if not segmentId then
    self:error("Unknown room '" .. tostring(roomName) .. "' for map '" .. tostring(currentMap) .. "' - check ROOMS_BY_MAP")
    return
  end
  self:debug("Cleaning room: " .. roomName .. " on map " .. currentMap .. " (segment " .. tostring(segmentId) .. ")")
  self:haCallService("dreame_vacuum", "vacuum_clean_segment", VACUUM_ENTITY, { segments = { segmentId } })
end

-- OPTIONAL: individual buttons for a few frequently-used rooms.
function QuickApp:cleanOffice()     self:cleanRoom("Office") end
function QuickApp:cleanLivingRoom() self:cleanRoom("Living Room") end
function QuickApp:cleanCorridor()   self:cleanRoom("Corridor") end
function QuickApp:cleanDiningHall() self:cleanRoom("Dining Hall") end
function QuickApp:cleanKitchen()    self:cleanRoom("Kitchen") end

-- Cleans every room on whichever floor/map is currently active, by
-- sending all of that floor's segment ids in one call.
function QuickApp:cleanAllRooms()
  local currentMap = self.info.map
  local mapRooms = ROOMS_BY_MAP[currentMap]
  if not mapRooms then
    self:error("No rooms configured for current map '" .. tostring(currentMap) .. "' - check ROOMS_BY_MAP, or wait for the map label to sync")
    return
  end
  local segments = {}
  for _, id in pairs(mapRooms) do
    table.insert(segments, id)
  end
  self:debug("Cleaning ALL rooms on map " .. currentMap .. " (segments: " .. table.concat(segments, ", ") .. ")")
  self:haCallService("dreame_vacuum", "vacuum_clean_segment", VACUUM_ENTITY, { segments = segments })
end

-- OPTIONAL: a single "Select" dropdown listing every distinct room
-- name across all floors (11 total: Office, Living Room, Corridor,
-- Dining Hall, Kitchen, Vince Slaapkamer, Viènna Slaapkamer,
-- Jace Slaapkamer, Bathroom, Closet, Ouders Slaapkamer), PLUS a 12th
-- option "All rooms" to clean the whole current floor at once. Wire
-- its onToggled to this one function instead of adding a button per
-- room.
function QuickApp:onRoomSelected(event)
  local roomName = event.values and event.values[1] or event.value
  if roomName == "All rooms" then
    self:cleanAllRooms()
    return
  end
  self:cleanRoom(roomName)
end

function QuickApp:debugDump()
  self:haGet("states/" .. VACUUM_ENTITY, function(data)
    if data then
      self:debug("---- RAW ENTITY DUMP ----")
      self:debug(json.encode(data))
      self:debug("-------------------------")
    else
      self:error("Could not fetch entity for debug dump - check HA_IP/HA_Bearer globals and VACUUM_ENTITY")
    end
  end)
end

  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
@GeeMoney

Netjes, zit wel een beetje werk in.
Een beetje van mijzelf en een beetje AI.
Die fietst duplicate functies er zo in. Ik heb een opzetje gemaakt en lever vervolgens mijn wensen aan en geef aan dat ik dezelfde opbouw wil hebben en variabelen zoveel mogelijk bovenin wil hebben en dat de code die op moet halen. Paar dry-runs en zelf even nalopen en dan krijg je dit.

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

@GeeMoney
Tip voor die hele lange lappen code: zet die tussen [quote] en [/quote].

Dus zo:
[quote]
[code]
Hier jouw lap code
[/code]
[/quote]

Dan hoeft iemand die niet al die regels code wil lezen niet eindeloos te scrollen om bij het volgende bericht te komen. En dan staat nog steeds alles erin.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

Ik heb een paar draaidimmers van HEATIT (Z-DIM) in gebruik. De meeste doen het gewoon, maar met een enkeling heb ik ruzie. Die geeft dan geen sjoege meer: blijft uit of blijft 100% aan.

Zijn er anderen die die dingen ook gebruiken?

En zijn er alternatieven, en dan heb ik het specifiek over draaidimmers?
Het liefst gebruik ik een driedraads dimmer, oftewel een dimmer waar fase én nul op de dimmer zijn aangesloten.

[ Voor 16% gewijzigd door Hippe Lip op 29-09-2026 18:20 ]

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
Tis tijd voor een vraag, bij een master/slave zetop kan je in de msster (hc3) de slave unit vervangen (bij een defecte slave oid)

Als de slave een hc3 lite is, kan je dan deze vervangen voor een hc3?

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

Hippe Lip schreef op dinsdag 29 september 2026 @ 18:11:
Ik heb een paar draaidimmers van HEATIT (Z-DIM) in gebruik. De meeste doen het gewoon, maar met een enkeling heb ik ruzie. Die geeft dan geen sjoege meer: blijft uit of blijft 100% aan.

Zijn er anderen die die dingen ook gebruiken?

En zijn er alternatieven, en dan heb ik het specifiek over draaidimmers?
Het liefst gebruik ik een driedraads dimmer, oftewel een dimmer waar fase én nul op de dimmer zijn aangesloten.
Niemand met ervaring met draaidimmers?

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
@Hippe Lip

Die komen bij robbshop vandaan? het lijkt er op dat de kwaliteit bedroevend is?

Ik zou eens informeren bij de leverancier (en/of een ander merk proberen.
bv Led dimmer inbouw 0 - 250 watt ECO-DIM.07 Z-Wave
ik ken deze niet, maar google liet deze zien.

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

Vanwaar die vraag, @akatar ?
het lijkt er op dat de kwaliteit bedroevend is?
Nou, als ze het doen doen ze precies wat ik ervan verwacht. Maar ik heb een paar keer een vreemde uitval gehad en weet niet waar dat aan ligt.
Ik zou eens informeren bij de leverancier (en/of een ander merk proberen.
Dat andere merk (tweedraads, dus met ook de nul aan de dimmer) heb ik nog niet gevonden. Daarom informeer ik hier naar ideeën en ervaringen van anderen.
bv Led dimmer inbouw 0 - 250 watt ECO-DIM.07 Z-Wave
ik ken deze niet, maar google liet deze zien.
Die ben ik ook wel tegengekomen, maar mijn voorkeur gaat uit naar een tweedraadsdimmer, dus eentje waarop niet alleen de fase maar ook de nul wordt aangesloten.
Ten eerste is uit dan ook altijd echt uit. Ten tweede heb ik matige ervaring met eendraadsdimmers. Bij voorbeeld dat een aangesloten led nog blijft ‘gloeien’ als je ‘m uit wilt hebben. Met name bij een kleine led van klein vermogen dus. Want de dimmer kan niet echt uit, omdat-ie dan geen werkspanning heeft. En de minimale stroom door de dimmer kan de led nog laten gloeien.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • akatar
  • Registratie: September 2002
  • Laatst online: 10-10 19:25
Omdat gelijk deze webshop opdook bij mijn google-search.

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 00:54

Hippe Lip

Er valt altijd wat te leren

Ik kan me nu niet zo meer herinneren waar ze vandaan kwamen, @akatar. Heb mijn bestellijsten nog niet allemaal doorgespit.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>

Pagina: 1 2 3 Laatste