Homey — A Better Smart Home (Deel 3) Vorige deel Overzicht

Pagina: 1 ... 10 11 Laatste
Acties:

  • Duukster
  • Registratie: Oktober 2020
  • Laatst online: 01-12 19:15
Vorig jaar hebben wij elektrische raambekleding gekocht van Tuiss, de verkoper vertelde destijds dat dit met Homey zou werken.
Afgelopen week een Homey pro 23 gekocht en die heeft dus geen koppeling met het Tuiss SmartView systeem.
Zijn er manieren om dit wel voor elkaar te krijgen?

  • DON PAPA
  • Registratie: April 2009
  • Laatst online: 00:47

DON PAPA

Tweaker-fan

Duukster schreef op woensdag 26 november 2025 @ 16:31:
Vorig jaar hebben wij elektrische raambekleding gekocht van Tuiss, de verkoper vertelde destijds dat dit met Homey zou werken.
Afgelopen week een Homey pro 23 gekocht en die heeft dus geen koppeling met het Tuiss SmartView systeem.
Zijn er manieren om dit wel voor elkaar te krijgen?
Welk merk en type motor zit er in de raambekleding?
Vaak staat er ook info op de afstandsbediening die erbij zit...

  • Duukster
  • Registratie: Oktober 2020
  • Laatst online: 01-12 19:15
DON PAPA schreef op woensdag 26 november 2025 @ 17:13:
[...]


Welk merk en type motor zit er in de raambekleding?
Vaak staat er ook info op de afstandsbediening die erbij zit...
Het Tuiss systeem werkt via een app, niet met afstandsbedieningen.
Het is van Hunter Douglas (Luxaflex)
Typenr op de motor zegt ICR18650

  • DON PAPA
  • Registratie: April 2009
  • Laatst online: 00:47

DON PAPA

Tweaker-fan

Duukster schreef op woensdag 26 november 2025 @ 17:52:
[...]
Het is van Hunter Douglas (Luxaflex)
En werkt het dan niet met deze app
https://homey.app/nl-nl/app/nl.luxaflex.powerview/

Je zal dan alleen wel één van de juiste hubs moeten hebben, die bij de app vermeld staan.

  • Duukster
  • Registratie: Oktober 2020
  • Laatst online: 01-12 19:15
DON PAPA schreef op woensdag 26 november 2025 @ 19:07:
[...]


En werkt het dan niet met deze app
https://homey.app/nl-nl/app/nl.luxaflex.powerview/

Je zal dan alleen wel één van de juiste hubs moeten hebben, die bij de app vermeld staan.
Ik heb Tuiss een mail gestuurd met de vraag.
Ben benieuwd

  • Idefix70
  • Registratie: Oktober 2009
  • Laatst online: 02-12 09:32
Tuiss zegt zelf dat integratie met smarthome platforms niet mogelijk is. Ik lees ook dat het een bluetooth verbinding is met de apps op de telefoon. Ik heb in github gezocht of iemand zelf wat heeft gebouwd. Want in principe is dat vast mogelijk om zelf een Homey App te ontwikkelen. Met AI was dat ook een peulenschil voor mij als niet developer om bluetooth buitenlampen te bedienen.

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 23:34
Sinds kort heb ik een Shelly BLU Door/window die via een bluetooth-gateway Shelly Plus 1PM te zien is binnen de Shelly app.
Nu zou ik hem willen ook zien binnen Homey, en daar loop ik tegen een probleem aan. Als ik de Homey-community geloof, kan ik van de Shelly Plus zien als schakelaar, of als bluetooth-gateway, maar niet als beide.

Nu zou ik toch beide willen zien binnen Homey en dacht ik even wat verder... Zou ik op de schakelaar een script kunnen draaien die bij een melding vanaf de deur-sensor een api-call uitvoert richting de Homey en een virtuele schakelaar omzet?

Heeft iemand al ervaring met zo'n constructie?

  • Source90
  • Registratie: December 2008
  • Laatst online: 00:37
jvdmeer schreef op zondag 30 november 2025 @ 13:42:
Sinds kort heb ik een Shelly BLU Door/window die via een bluetooth-gateway Shelly Plus 1PM te zien is binnen de Shelly app.
Nu zou ik hem willen ook zien binnen Homey, en daar loop ik tegen een probleem aan. Als ik de Homey-community geloof, kan ik van de Shelly Plus zien als schakelaar, of als bluetooth-gateway, maar niet als beide.

Nu zou ik toch beide willen zien binnen Homey en dacht ik even wat verder... Zou ik op de schakelaar een script kunnen draaien die bij een melding vanaf de deur-sensor een api-call uitvoert richting de Homey en een virtuele schakelaar omzet?

Heeft iemand al ervaring met zo'n constructie?
Deze heb ik in Homey toegevoegd en daarmee zijn alle apparaten wel zichtbaar en bruikbaar (gebruik hem zelf voor bewingssensoren via Blu.

Voor iets meer dan een tientje ben je dan klaar, i.p.v. halve functionaliteit te moeten kiezen via de 1PM.
Afbeeldingslocatie: https://tweakers.net/i/Rrh1NyXAY6kPpPnUK79S4D456eg=/800x/filters:strip_exif()/f/image/1hb192DjYMOTpdSjAdKhUwvh.png?f=fotoalbum_large

[ Voor 15% gewijzigd door Source90 op 30-11-2025 14:41 ]


  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 23:34
Source90 schreef op zondag 30 november 2025 @ 14:39:
[...]

Deze heb ik in Homey toegevoegd en daarmee zijn alle apparaten wel zichtbaar en bruikbaar (gebruik hem zelf voor bewingssensoren via Blu.

Voor iets meer dan een tientje ben je dan klaar, i.p.v. halve functionaliteit te moeten kiezen via de 1PM.
[Afbeelding]
Die heb ik overwogen, maar die moet ergens in worden gestoken voor voeding. En ik heb geen wandcontactdoos in de buurt.
Alleen de lichtschakelaar waar dus een 1PM achter zit. Dichtstbijzijnde wcd zit op twaalf meter en is een buiten-wcd in de tuin.

  • Stefke
  • Registratie: December 2000
  • Laatst online: 22:48
Ik heb vandaag een Homey 2023 ontvangen. Backup gemaakt van mijn 2019, deze uitgezet, en toen de backup naar de 2023 gehaald.
Nu zag ik hier
https://support.homey.app...9-to-Homey-Pro-Early-2023
What about apps?
The backup doesn’t include installed apps. After migration, your new Homey Pro (Early 2023) automatically downloads and installs compatible ones. Apps that haven’t been updated to SDK v3 won’t be installed.
Dat bepaalde apps automatisch zouden moeten installeren, maar ik zie alleen maar blanco app "tabs" met "App-naam ontbreekt". Aan die "apps" is niet te zien welke het waren.
Moet ik langer wachten, of is het helemaal niet zo dat apps automatisch installeren?

Afbeeldingslocatie: https://tweakers.net/i/allKhqWEdFyMf9_1w0mYRAHP2gw=/x800/filters:strip_exif()/f/image/IjQxG1S06MvUtwDcEvD39vKj.png?f=fotoalbum_large
Je ziet ook nergens aan welke apps het zijn (de oospronkelijke naam zou toch wel ergens bewaard moeten zijn??) dus nu moet ik mijn oude weer gaan opstarten en met pen en papier gaan opschrijven welke apps ik had?

[ Voor 25% gewijzigd door Stefke op 02-12-2025 16:29 ]


  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Apps installeren allemaal opnieuw, maar kan best even een tijd duren, hij moet ze een voor een allemaal af.
Als je de setup afgerond hebt gewoon aan laten staan en afwachten...

Apps gingen hier alelmala wel goed, grootste problem zat, vond ik, in het moeten repairen van al je Zigbee devices.

Wel repair kiezen en niet verwijderen anders zijn je flows kaput...

Niet je 2019 opstarten als je 2023 aanstaat of omgekeerd...

[ Voor 7% gewijzigd door Jpiek op 02-12-2025 16:35 ]


  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
jvdmeer schreef op zondag 30 november 2025 @ 15:16:
[...]
Die heb ik overwogen, maar die moet ergens in worden gestoken voor voeding. En ik heb geen wandcontactdoos in de buurt.
Alleen de lichtschakelaar waar dus een 1PM achter zit. Dichtstbijzijnde wcd zit op twaalf meter en is een buiten-wcd in de tuin.
ook geen netwerkkabel ? USB2UTP en dan UTP2USB...

  • Stefke
  • Registratie: December 2000
  • Laatst online: 22:48
Thanks, dan wacht ik nog even. Ik was al bang dat ik ook al die placeholders moest gaan verwijderen.

  • Rossi46
  • Registratie: April 2003
  • Laatst online: 00:27
Kort vraagje: zijn hier Homey gebruikers die thuis zowel een Zigbee mesh netwerk als een Thread mesh netwerk draaiende hebben? Zo ja, stoort dat elkaar of merk je daar in de praktijk niets van?

Reden dat ik het vraag is dat ik thuis inmiddels een best uitgebreid Zigbee mesh netwerk heb draaien, maar voorzie dat ik op den duur ook Thread apparatuur in huis 'moet' nemen (doordat bijvoorbeeld Ikea volledig volledig lijkt over te stappen van Zigbee naar Tread).

Ik wil deze maand nog twee slimme dimmers plaatsen, die vrij centraal zitten beneden en op de 1e verdieping. Dat lijken mij ideale plekken om Tread routers te hebben, zodat op die manier de basis voor het nieuwe Thread netwerk direct staat.

iRacing Profiel XBL: Ross1fum1 PSN: Rossifum1


  • deejeebv
  • Registratie: Juni 2008
  • Laatst online: 20:15
Ik heb een Netatmo Slimme Thermostaat gekocht om mijn Nilan Geo warmtepomp mee aan te sturen. De aansturing van de warmtepomp doe ik via een eigen Nilan Homey app.
Ik lees nu dus de ingestelde en de werkelijke temperatuur van de Netatmo uit en gebruik die in mijn flow op de aanvoer temperatuur voor de vloerverwarming in te stellen. In principe werkt dat, maar ik merk dat er nogal eens een vertraging zit in de ingestelde waarde op de Netatmo en de waarde die Homey in de app heeft. Ook kan ik geen gebruik maken van de anticiaptie mogelijkheid die de Netatmo heeft.
Helaas heeft de Netatmo van Homey geen mogelijkheid om op te vragen of de thermostaat warmte vraagt of niet.
Ik zou op de thermostaat wellicht een andere sensor aan kunnen sluiten die ik weer met Homey uit kan lezen. De thermostaat is een simpele aan/uit thermostaat dus is een sensor die meet of er contact is voldoende.
Heeft iemand een idee wat voor sensor ik daarvoor zou kunnen gebruiken?

  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Zou je er geen waterleaksensor aan/tussen kunnen zetten ? Die detecteerd dan ipv water dat de thermostaat verbinding maakt. Ze zijn al vaker voor dit soort dingen misbruikt :

https://community.homey.a...ch-for-outdoor-use/117838

  • NaN
  • Registratie: Oktober 2004
  • Niet online

NaN

SjoebieDoowah.

deejeebv schreef op woensdag 3 december 2025 @ 15:19:
Ik heb een Netatmo Slimme Thermostaat gekocht om mijn Nilan Geo warmtepomp mee aan te sturen. De aansturing van de warmtepomp doe ik via een eigen Nilan Homey app.
Ik lees nu dus de ingestelde en de werkelijke temperatuur van de Netatmo uit en gebruik die in mijn flow op de aanvoer temperatuur voor de vloerverwarming in te stellen. In principe werkt dat, maar ik merk dat er nogal eens een vertraging zit in de ingestelde waarde op de Netatmo en de waarde die Homey in de app heeft. Ook kan ik geen gebruik maken van de anticiaptie mogelijkheid die de Netatmo heeft.
Helaas heeft de Netatmo van Homey geen mogelijkheid om op te vragen of de thermostaat warmte vraagt of niet.
Ik zou op de thermostaat wellicht een andere sensor aan kunnen sluiten die ik weer met Homey uit kan lezen. De thermostaat is een simpele aan/uit thermostaat dus is een sensor die meet of er contact is voldoende.
Heeft iemand een idee wat voor sensor ik daarvoor zou kunnen gebruiken?
https://homey.app/nl-nl/a...mo/BticinoLegrandNetatmo/

Kijk eens naar deze app, die kan wel gebruikt worden voor jouw situatie. Die geeft wel anticipatie aan en dat er gestookt wordt.

  • deejeebv
  • Registratie: Juni 2008
  • Laatst online: 20:15
NaN schreef op woensdag 3 december 2025 @ 18:30:
[...]

https://homey.app/nl-nl/a...mo/BticinoLegrandNetatmo/

Kijk eens naar deze app, die kan wel gebruikt worden voor jouw situatie. Die geeft wel anticipatie aan en dat er gestookt wordt.
Die app krijg ik niet geïnstalleerd op mijn Homey pro, hij crasht zodra hij is geïnstalleerd.

Na een paar pogingen toch gelukt, morgen mijn flow maar eens aanpassen,

[ Voor 8% gewijzigd door deejeebv op 03-12-2025 22:05 ]


  • NaN
  • Registratie: Oktober 2004
  • Niet online

NaN

SjoebieDoowah.

deejeebv schreef op woensdag 3 december 2025 @ 21:58:
[...]

Die app krijg ik niet geïnstalleerd op mijn Homey pro, hij crasht zodra hij is geïnstalleerd.

Na een paar pogingen toch gelukt, morgen mijn flow maar eens aanpassen,
Wel vreemd, dat crashen, maar goed, het is je gelukt uiteindelijk.

Ik was er erg blij mee, toen ik erachter kwam dat deze app ook bestond. Ik wilde ook weten wanneer de thermostaat de ketel liet stoken. Dat hij ook nog laat zien wanneer hij aan het anticiperen is, is helemaal een bonus!

  • deejeebv
  • Registratie: Juni 2008
  • Laatst online: 20:15
NaN schreef op woensdag 3 december 2025 @ 22:41:
[...]

Wel vreemd, dat crashen, maar goed, het is je gelukt uiteindelijk.

Ik was er erg blij mee, toen ik erachter kwam dat deze app ook bestond. Ik wilde ook weten wanneer de thermostaat de ketel liet stoken. Dat hij ook nog laat zien wanneer hij aan het anticiperen is, is helemaal een bonus!
Helaas crashed de app opnieuw en is mijn thermostaat onbereikbaar. Opnieuw opstarten van de app helpt niet, hen nu de Homey opnieuw opgestart.

Helaas helpt opnieuw opstarten Homey ook niet. Heb nu contact opgenomen met de ontwikkelaar van de app.

[ Voor 8% gewijzigd door deejeebv op 04-12-2025 08:20 ]


  • Jfwiet
  • Registratie: Juni 2002
  • Laatst online: 04-12 11:28
Rossi46 schreef op dinsdag 2 december 2025 @ 17:26:
Kort vraagje: zijn hier Homey gebruikers die thuis zowel een Zigbee mesh netwerk als een Thread mesh netwerk draaiende hebben? Zo ja, stoort dat elkaar of merk je daar in de praktijk niets van?

Reden dat ik het vraag is dat ik thuis inmiddels een best uitgebreid Zigbee mesh netwerk heb draaien, maar voorzie dat ik op den duur ook Thread apparatuur in huis 'moet' nemen (doordat bijvoorbeeld Ikea volledig volledig lijkt over te stappen van Zigbee naar Tread).

Ik wil deze maand nog twee slimme dimmers plaatsen, die vrij centraal zitten beneden en op de 1e verdieping. Dat lijken mij ideale plekken om Tread routers te hebben, zodat op die manier de basis voor het nieuwe Thread netwerk direct staat.
Thread en Zigbee bijten elkaar net zoveel als jouw 2.4 wifi en die van de buren. Weinig aan te veranderen. Dus prima idee als die 2 dimmers binnen bereik zijn van elkaar en je Thread Border Router. Laatst wat gezien over Eero van Amazon. Dat is een Wifi mesh systeem waar Thread in zit, denk dat we dat meer gaan zien in de toekomst.

  • NiGeLaToR
  • Registratie: Maart 2000
  • Laatst online: 22:44
Afbeeldingslocatie: https://tweakers.net/i/9HUqMoGtS-BpZIXzTuHoXyoSdJw=/800x/filters:strip_exif()/f/image/FnN8IuWwHN9cGqU6yO8lTTdU.png?f=fotoalbum_large
Nu verkrijgbaar voor € 249
Homey Pro mini is vanaf vandaag verkrijgbaar in Nederland, België en de rest van Europa. Daarmee is de wereldwijde uitrol compleet.
Met deze compacte hub beschik je over alle essentiële smart home-connectiviteit, zonder abonnementskosten.
Ervaar de kracht van Homey Pro in een kleiner jasje, met de voordelen van een lokaal, privacygericht smart home.
Evt met de homey puck voor Zwave en IR helemaal compleet voor 249 + 69 euro.

Interessante upgrade optie voor mijn Homey pro 2019, die vroeg of laat ook aan vervanging toe is..

Meer info.

KOPHI - Klagen Op Het Internet podcast. Luister hier! – bejaardenexport, WEF en de LIDL kassa kwamen al voorbij. Meepraten als gast? DM mij!


  • TKroon
  • Registratie: December 2006
  • Niet online
@NiGeLaToR let wel dat deze maar de helft van het werkgeheugen van de Pro heeft.

Daikin Altherma 3 LT 8 kW + 14,2 kWp PV


  • NiGeLaToR
  • Registratie: Maart 2000
  • Laatst online: 22:44
TKroon schreef op donderdag 4 december 2025 @ 10:27:
@NiGeLaToR let wel dat deze maar de helft van het werkgeheugen van de Pro heeft.
Goed punt, heb nu in de 2019 ook 1Gb geheugen, maar die stamt nog uit .. 2019.

Ik vind de pro onevenredig duur, maargoed.. dat zit vast niet alleen in het geheugen.

KOPHI - Klagen Op Het Internet podcast. Luister hier! – bejaardenexport, WEF en de LIDL kassa kwamen al voorbij. Meepraten als gast? DM mij!


  • TKroon
  • Registratie: December 2006
  • Niet online
NiGeLaToR schreef op donderdag 4 december 2025 @ 10:31:
[...]


Goed punt, heb nu in de 2019 ook 1Gb geheugen, maar die stamt nog uit .. 2019.

Ik vind de pro onevenredig duur, maargoed.. dat zit vast niet alleen in het geheugen.
Eens, maar qua bruikbaarheid en toekomstbestendigheid is 1 GB echt weinig. Over het algemeen worden je smart home wensen niet minder door de jaren heen :+

Daikin Altherma 3 LT 8 kW + 14,2 kWp PV


  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Mini + Bridge = 318,=
Pro = 349 (evt met Ethernetdongle + 29,95) = 378,95

Dan zou ik voor de Pro gaan, ik vind de Mini onevenredig duur...

[ Voor 13% gewijzigd door Jpiek op 04-12-2025 10:37 ]


  • NiGeLaToR
  • Registratie: Maart 2000
  • Laatst online: 22:44
Jpiek schreef op donderdag 4 december 2025 @ 10:34:
Mini + Bridge = 318,=
Pro = 349 (evt met Ethernetdongle + 29,95) = 378,95

Dan zou ik voor de Pro gaan, ik vind de Mini onevenredig duur...
Ah had gemist dat de pro nu 349 is en als je dan geen zwave puck nodig hebt.. oke.. ben al weer overtuigd. Gaat m'n enthousiasme :D

KOPHI - Klagen Op Het Internet podcast. Luister hier! – bejaardenexport, WEF en de LIDL kassa kwamen al voorbij. Meepraten als gast? DM mij!


  • Stefke
  • Registratie: December 2000
  • Laatst online: 22:48
Nou heb ik dus afgelopen zaterdag een 2023 besteld als vervanging van de 2019 en de backup teruggezet. Na lange tijd zijn nu inderdaad alle apps geinstalleerd, maar zowel mijn zigbee (20+ devices) als zwave netwerk (2 devices) zijn helemaal leeg. Hoe kan ik die terugkrijgen?
Beide Homeys zijn niet tegelijk online geweest.

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 22:26
Zou je een oude Homey 2019 ook als Bridge kunnen gebruiken? Dat zou een eventuele upgrade nog wel interessant maken, want wil nog wel Z-Wave blijven gebruiken.

  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Stefke schreef op donderdag 4 december 2025 @ 10:49:
maar zowel mijn zigbee (20+ devices) als zwave netwerk (2 devices) zijn helemaal leeg. Hoe kan ik die terugkrijgen?
Beide Homeys zijn niet tegelijk online geweest.
Zigbee moet je repairen ;
Jpiek schreef op dinsdag 2 december 2025 @ 16:33:
grootste problem zat, vond ik, in het moeten repairen van al je Zigbee devices.
Wel repair kiezen en niet verwijderen anders zijn je flows kaput...
De Pro 2023 heeft namelijk een andere Zigbee chip.

ZWave zou gewoon moeten werken na restore, heb zelf geen ZWave dus kan je daar niet mee helpen..

  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
jip_86 schreef op donderdag 4 december 2025 @ 11:44:
Zou je een oude Homey 2019 ook als Bridge kunnen gebruiken? Dat zou een eventuele upgrade nog wel interessant maken, want wil nog wel Z-Wave blijven gebruiken.
Niet als bridge, wel als sattelite... Flows moetje dan op de 2019 laten draaien..

  • Stefke
  • Registratie: December 2000
  • Laatst online: 22:48
Jpiek schreef op donderdag 4 december 2025 @ 11:57:
[...]


Zigbee moet je repairen ;

[...]


De Pro 2023 heeft namelijk een andere Zigbee chip.

ZWave zou gewoon moeten werken na restore, heb zelf geen ZWave dus kan je daar niet mee helpen..
Hoe? Er is helemaal niets te zien
Afbeeldingslocatie: https://tweakers.net/i/HDoOiEEVSQ5dxfqwct0YTu2GDns=/800x/filters:strip_exif()/f/image/00BfoBTXQWD6sMnrSBMwzLV9.png?f=fotoalbum_large

  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Rechtsklikken op het device in 'Apparaten' (of 'Devices') en dan 'repair' kiezen. Op het apparaat zul je ws weer op het resetkopje moeten drukken als Homey daarom vraagt.

Waarschijnlijk is het handige om het in de app op je telefoon te doen (dan kan je bij het device gaan staan) : Op het device klikken en dan de blauwe knop 'Probeer te repareren'...

  • MR. RHS
  • Registratie: Maart 2015
  • Laatst online: 23:03
Ben benieuwd of er ook nog een versie gaat uitkomen van de pro, zijn er geruchten?

  • Stefke
  • Registratie: December 2000
  • Laatst online: 22:48
Jpiek schreef op donderdag 4 december 2025 @ 12:30:
Rechtsklikken op het device in 'Apparaten' (of 'Devices') en dan 'repair' kiezen. Op het apparaat zul je ws weer op het resetkopje moeten drukken als Homey daarom vraagt.

Waarschijnlijk is het handige om het in de app op je telefoon te doen (dan kan je bij het device gaan staan) : Op het device klikken en dan de blauwe knop 'Probeer te repareren'...
thanks, ik kende die functie niet. Ik dacht dat ik op de webapp moest zijn

Dat nog zwave, als ik hier kijk dan lijkt dat wel automatisch te moeten gaan. In Homey zie ik beide devices, maar een fibaro 0-10v dimmer geeft een fout, de MCO-home CO2 meter lijkt te werken maar doet dat niet. In de webapp is mijn zwave netwerk leeg.
Iemand die weet hoe met Zwave om te gaan?

[ Voor 26% gewijzigd door Stefke op 04-12-2025 13:52 ]


  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Kan in de Webbapp ook als je rechtsklikt..

Als je echt maar 2 ZWave devices hebt : Maak een printscreen van je flows met die devices (hint: print naar PDF op een A3. lekker leesbaar).. verwijder ze en voeg ze opnieuw toe en vervang in de flows de oude devices met de nieuwe . is waarschijnlijk minder werk, tenzij je flows heeel complex zijn..

  • Stefke
  • Registratie: December 2000
  • Laatst online: 22:48
Ik ben ze al opnieuw aan het toevoegen, want het zijn er inderdaad maar 2. Ik gebruik een script om devices te vervangen (script komt van het Homey forum) dus dat gaat eenvoudig.

edit, deze, komt van Homey forum maar ik heb m aangepast zodat hij gewoon 2 devicenamen accepteert en direct vervangt (je hoeft dan niet zoals in de "oude versie" IDs op te vragen
code:
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
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
// Configuratie: pas deze waarden aan
const oldDeviceName = "HalSpots";  // Naam van het oude apparaat
const newDeviceName = "HalSpots2";  // Naam van het nieuwe apparaat

// Set the softRun variable to true or false to determine whether changes should be logged or actually executed
const softRun = true; // true | false

// Open the console in your browser and the result will be shown there
// Howto open console: https://balsamiq.com/support/faqs/browserconsole/

// Functie om device ID op te halen op basis van naam (verbeterde versie)
const getDeviceIdByName = async (deviceName) => {
    console.log(`Zoeken naar apparaat met naam: "${deviceName}"`);
    
    const devices = await Homey.devices.getDevices();
    const allDevices = Object.values(devices);
    
    // Eerst zoeken naar exacte match (case-insensitive)
    let matchingDevices = allDevices.filter(device => 
        device.name.toLowerCase() === deviceName.toLowerCase()
    );
        
    if (matchingDevices.length === 0) {
        throw new Error(`Geen apparaat gevonden met naam: "${deviceName}"`);
    }
    
    if (matchingDevices.length > 1) {
        console.warn(`Meerdere apparaten gevonden voor "${deviceName}":`, 
            matchingDevices.map(d => ({ id: d.id, name: d.name })));
        console.log(`Gebruikt het eerste apparaat: ${matchingDevices[0].name} (${matchingDevices[0].id})`);
    }
    
    const selectedDevice = matchingDevices[0];
    console.log(`Apparaat gevonden: "${selectedDevice.name}" met ID: ${selectedDevice.id}`);
    
    return selectedDevice.id;
};

const main = async function () {
    console.log('Starting main function...');
    
    try {
        // Haal de device IDs op
        console.log('=== Device IDs ophalen ===');
        const oldDeviceId = await getDeviceIdByName(oldDeviceName);
        const newDeviceId = await getDeviceIdByName(newDeviceName);
        
        // Stel de arrays in (behoud de originele structuur voor compatibiliteit)
        const oldIds = [oldDeviceId];
        const newIds = [newDeviceId];
        
        console.log(`Oude apparaat ID: ${oldDeviceId}`);
        console.log(`Nieuwe apparaat ID: ${newDeviceId}`);
        console.log('=== Begin vervanging in flows ===');

        // Retrieve all of the existing flows
        const flows = await Homey.flow.getFlows();

        // Process flows sequentially to avoid async issues
        for (const f of Object.values(flows)) {
            //console.log(`Checking flow "${f.name}"...`);

            // If the flow has a trigger with a URI or ID
            if (f.trigger && (f.trigger.uri || f.trigger.id)) {
                const trigger = f.trigger;
                let replaceValue = '';
                let cardsChanged = false;

                if (oldIds.length === 1) {
                    replaceValue = oldIds[0];
                } else if (trigger.uri && trigger.uri.includes('homey:device:')) {
                    replaceValue = trigger.uri.replace('homey:device:', '');
                } else if (trigger.id && trigger.id.includes('homey:device:')) {
                    replaceValue = trigger.id.replace('homey:device:', '');
                }

                if (replaceValue.includes('|')) {
                    replaceValue = replaceValue.split('|')[0];
                } else if (replaceValue.includes(':')) {
                    replaceValue = replaceValue.split(':')[0];
                }

                // If the flow contains the old device ID
                if (oldIds.includes(replaceValue)) {
                    const replacer = new RegExp(replaceValue, 'g');
                    const index = oldIds.findIndex((o) => o.includes(replaceValue));

                    // Replace the old device ID with the corresponding new device ID in the trigger
                    if (trigger.uri) {
                        const oldToken = trigger.uri;
                        trigger.uri = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== trigger.uri) {
                            console.log(`Found old device ID in URI of trigger card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    } else if (trigger.id) {
                        const oldToken = trigger.id;
                        trigger.id = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== trigger.id) {
                            console.log(`Found old device ID in ID of trigger card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    // Replace the old device ID with the corresponding new device ID in the trigger droptoken
                    if (trigger.droptoken) {
                        const oldToken = trigger.droptoken;
                        trigger.droptoken = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== trigger.droptoken) {
                            console.log(`Found old device ID in droptoken of trigger card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (cardsChanged) {
                        if (!softRun) {
                            console.log(`Updating flow "${f.name}" with new trigger...`);
                            await Homey.flow.updateFlow({
                                id: f.id,
                                flow: { id: f.id, trigger: trigger }
                            });
                        } else {
                            console.log(`Would update flow "${f.name}" with new trigger`);
                        }
                    }
                }
            }

            // Process actions
            for (let i = 0; i < f.actions.length; i++) {
                const a = f.actions[i];
                let replaceValue = '';
                let cardsChanged = false;

                if (oldIds.length === 1) {
                    replaceValue = oldIds[0];
                } else if (a.uri && a.uri.includes('homey:device:')) {
                    replaceValue = a.uri.replace('homey:device:', '');
                } else if (a.id && a.id.includes('homey:device:')) {
                    replaceValue = a.id.replace('homey:device:', '');
                }

                if (replaceValue.includes('|')) {
                    replaceValue = replaceValue.split('|')[0];
                } else if (replaceValue.includes(':')) {
                    replaceValue = replaceValue.split(':')[0];
                }

                if (oldIds.includes(replaceValue)) {
                    const replacer = new RegExp(replaceValue, 'g');
                    const actions = f.actions;
                    const index = oldIds.findIndex((o) => o.includes(replaceValue));

                    if (actions[i].uri) {
                        const oldToken = actions[i].uri;
                        actions[i].uri = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== actions[i].uri) {
                            console.log(`Found old device ID in URI of action card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    } else if (actions[i].id) {
                        const oldToken = actions[i].id;
                        actions[i].id = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== actions[i].id) {
                            console.log(`Found old device ID in ID of action card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (actions[i].args && actions[i].args.value && typeof actions[i].args.value === 'string') {
                        const oldToken = actions[i].args.value;
                        actions[i].args.value = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== actions[i].args.value) {
                            console.log(`Found old device ID in value of action card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (actions[i].args && actions[i].args.text && typeof actions[i].args.text === 'string') {
                        const oldToken = actions[i].args.text;
                        actions[i].args.text = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== actions[i].args.text) {
                            console.log(`Found old device ID in text of action card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (actions[i].args && actions[i].args.message && typeof actions[i].args.message === 'string') {
                        const oldToken = actions[i].args.message;
                        actions[i].args.message = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== actions[i].args.message) {
                            console.log(`Found old device ID in message of action card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (cardsChanged) {
                        if (!softRun) {
                            console.log(`Updating flow "${f.name}" with new action...`);
                            await Homey.flow.updateFlow({
                                id: f.id,
                                flow: { id: f.id, actions: actions }
                            });
                        } else {
                            console.log(`Would update flow "${f.name}" with new action`);
                        }
                    }
                }
            }

            // Process conditions
            for (let i = 0; i < f.conditions.length; i++) {
                const a = f.conditions[i];
                let replaceValue = '';
                let cardsChanged = false;

                if (oldIds.length === 1) {
                    replaceValue = oldIds[0];
                } else if (a.uri && a.uri.includes('homey:device:')) {
                    replaceValue = a.uri.replace('homey:device:', '');
                } else if (a.id && a.id.includes('homey:device:')) {
                    replaceValue = a.id.replace('homey:device:', '');
                }

                if (replaceValue.includes('|')) {
                    replaceValue = replaceValue.split('|')[0];
                } else if (replaceValue.includes(':')) {
                    replaceValue = replaceValue.split(':')[0];
                }

                if (oldIds.includes(replaceValue)) {
                    const replacer = new RegExp(replaceValue, 'g');
                    const conditions = f.conditions;
                    const index = oldIds.findIndex((o) => o.includes(replaceValue));

                    if (conditions[i].uri) {
                        const oldToken = conditions[i].uri;
                        conditions[i].uri = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== conditions[i].uri) {
                            console.log(`Found old device ID in URI of condition card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    } else if (conditions[i].id) {
                        const oldToken = conditions[i].id;
                        conditions[i].id = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== conditions[i].id) {
                            console.log(`Found old device ID in ID of condition card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (conditions[i].droptoken) {
                        const oldToken = conditions[i].droptoken;
                        conditions[i].droptoken = oldToken.replace(replacer, newIds[index]);
                        if (oldToken !== conditions[i].droptoken) {
                            console.log(`Found old device ID in Droptoken of condition card in flow "${f.name}"`);
                            cardsChanged = true;
                        }
                    }

                    if (cardsChanged) {
                        if (!softRun) {
                            console.log(`Updating flow "${f.name}" with new condition...`);
                            await Homey.flow.updateFlow({
                                id: f.id,
                                flow: { id: f.id, conditions: conditions }
                            });
                        } else {
                            console.log(`Would update flow "${f.name}" with new condition`);
                        }
                    }
                }
            }
        }

        console.log('--------------------------------------');

        // Retrieve all of the existing advanced flows
        const advanced_flows = Object.values(await Homey.flow.getAdvancedFlows());

        // Process advanced flows
        for (const af of advanced_flows) {
            //console.log(`Checking advanced flow "${af.name}"...`);
            const cards = af.cards;
            let cardsChanged = false;

            for (const c in af.cards) {
                let replaceValue = null;

                if (oldIds.length === 1) {
                    replaceValue = oldIds[0];
                } else if (cards[c].ownerUri && cards[c].ownerUri.includes('homey:device:')) {
                    replaceValue = cards[c].ownerUri.replace('homey:device:', '');
                }

                if (replaceValue) {
                    if (replaceValue.includes('|')) {
                        replaceValue = replaceValue.split('|')[0];
                    } else if (replaceValue.includes(':')) {
                        replaceValue = replaceValue.split(':')[0];
                    }

                    if (oldIds.includes(replaceValue)) {
                        const replacer = new RegExp(replaceValue, 'g');
                        const index = oldIds.findIndex((o) => o.includes(replaceValue));

                        if (cards[c].droptoken) {
                            const oldToken = cards[c].droptoken;
                            cards[c].droptoken = cards[c].droptoken.replace(replacer, newIds[index]);
                            if (oldToken !== cards[c].droptoken) {
                                console.log(`Found old device ID in droptoken of card in advanced flow "${af.name}"`);
                                cardsChanged = true;
                            }
                        }

                        if (cards[c].args && cards[c].args.value && typeof cards[c].args.value === 'string') {
                            const oldToken = cards[c].args.value;
                            cards[c].args.value = cards[c].args.value.replace(replacer, newIds[index]);
                            if (oldToken !== cards[c].args.value) {
                                console.log(`Found old device ID in value of card in advanced flow "${af.name}"`);
                                cardsChanged = true;
                            }
                        }

                        if (cards[c].args && cards[c].args.text && typeof cards[c].args.text === 'string') {
                            const oldToken = cards[c].args.text;
                            cards[c].args.text = cards[c].args.text.replace(replacer, newIds[index]);
                            if (oldToken !== cards[c].args.text) {
                                console.log(`Found old device ID in text of card in advanced flow "${af.name}"`);
                                cardsChanged = true;
                            }
                        }

                        if (cards[c].args && cards[c].args.message && typeof cards[c].args.message === 'string') {
                            const oldToken = cards[c].args.message;
                            cards[c].args.message = cards[c].args.message.replace(replacer, newIds[index]);
                            if (oldToken !== cards[c].args.message) {
                                console.log(`Found old device ID in message of card in advanced flow "${af.name}"`);
                                cardsChanged = true;
                            }
                        }

                        if (cards[c].ownerUri) {
                            const oldToken = cards[c].ownerUri;
                            cards[c].ownerUri = cards[c].ownerUri.replace(replacer, newIds[index]);
                            if (oldToken !== cards[c].ownerUri) {
                                console.log(`Found old device ID in ownerUri of card in advanced flow "${af.name}"`);
                                cardsChanged = true;
                            }
                        }

                        if (cards[c].id) {
                            const oldToken = cards[c].id;
                            cards[c].id = cards[c].id.replace(replacer, newIds[index]);
                            if (oldToken !== cards[c].id) {
                                console.log(`Found old device ID in ID of card in advanced flow "${af.name}"`);
                                cardsChanged = true;
                            }
                        }
                    }
                }
            }

            if (cardsChanged) {
                if (!softRun) {
                    console.log(`Updating advanced flow "${af.name}" with new cards...`);
                    const response = await Homey.flow.updateAdvancedFlow({
                        id: af.id,
                        advancedflow: { cards: cards }
                    });
                    console.log(`Update response: ${JSON.stringify(response)}`);
                } else {
                    console.log(`Would update advanced flow "${af.name}" with new cards`);
                }
            }
        }
        
        console.log('=== Script voltooid ===');
        
    } catch (error) {
        console.error('Fout opgetreden:', error.message);
    }
};

// Call the main function to execute the flow ID replacements
main();

[ Voor 99% gewijzigd door Stefke op 04-12-2025 14:32 ]


  • Jpiek
  • Registratie: Maart 2022
  • Laatst online: 23:17
Hmm, zelf dat script dan nog niet gebruikt/hoeven gebruiken... Dacht eigenlijk dat die alleen voor Zigbee was...

  • Ethirty
  • Registratie: September 2007
  • Laatst online: 22:37

Ethirty

Who...me?

NiGeLaToR schreef op donderdag 4 december 2025 @ 09:29:
[Afbeelding]


[...]


Evt met de homey puck voor Zwave en IR helemaal compleet voor 249 + 69 euro.

Interessante upgrade optie voor mijn Homey pro 2019, die vroeg of laat ook aan vervanging toe is..

Meer info.
Zat er al maanden op te wachten, dus kon niet anders dan direct bestellen. Erg benieuwd naar de ervaring met Homey en hoe snel ik wat kan optuigen. Home Assistant kreeg ik stress van om iets meer te doen dan alle devices toevoegen :D

#team_UTC+1

An investment in knowledge always pays the best interest - Benjamin Franklin
You can call me McOverloper  Mini '12 i7/16/256  Air '13 i5/8/256  iPad mini 5 64GB  iPhone SE 128GB

Pagina: 1 ... 10 11 Laatste