Toggle lampen in een ruimte

Is er een mogelijkheid om te togglen voor lampen in een flow?

Ik wil graag een knop waarvan als ik hem indruk dat de lampen in de kamer aan of uit gaan. Nu is het enkel zover ik zie mogelijk om of aan of uit te selecteren. Tenzei ik een specieke lamp pak of een groep maak met een externe app, maar als ik dat laatste wil doen moet ik rekening houden als ik een nieuwe lamp erbij heb dat ik die ook weer in een special groep moet toevoegen.

Ik heb geprobeerd met chatgpt
maar dit lukt niet, sommige lampen staan uit en worden dan niet geskipt en dan duurt het enorm lang om om het script te runnen en voor mijn gevoel skipt die lampen

// Stel de ruimte in waarin je de lampen wilt toggelen
const roomName = 'Woonkamer';  // Pas dit aan naar de gewenste ruimte

// Haal alle zones (ruimtes) op
const zones = await Homey.zones.getZones();

// Zoek naar de juiste zone op basis van de naam
const zone = Object.values(zones).find(zone => zone.name.toLowerCase() === roomName.toLowerCase());

if (!zone) {
    return console.log(`Zone met de naam "${roomName}" niet gevonden.`);
}

// Haal alle apparaten op
const devices = await Homey.devices.getDevices();

// Loop door alle apparaten en toggle alleen lampen in de juiste zone
for (const device of Object.values(devices)) {
    if (device.class === 'light' && device.zone === zone.id) {
        const onoff = device.capabilitiesObj.onoff.value;
        await device.setCapabilityValue('onoff', !onoff);
        console.log(`✅ Toggled ${device.name} in ${roomName}`);
    }
}

Je zegt dat je wilt togglen, dat betekent “lampen aan die uit staan, en lampen uit die aan staan” :man_shrugging:t3:

Ik bedoel hier stroomloos ipv uit. Sorry :rofl:

Dus eigenlijk wat ik wil:


Maar dan voor een hele ruimte (geen groep)

Je kunt checken of een device “available” is:

if (device.available && device.class === 'light' && device.zone === zone.id)

Bedankt voor je snelle reactie, maar ik heb 0 coding skills wat dit betreft. Ik moet het echt doen met de community die mij hiermee willen helpen met een final code.

Het kan ook als volgt:

WANNEER knop is ingedrukt
AND lamp1 is aan
THEN zet alle lampen in zone1 uit
ELSE zet alle lampen in zone 1 aan

1 Like

Maar dan zit ik met: stel een lamp1 staat uit maar alle andere aan, dan alsnog werkt het niet.

Er van uitgaande dat lamp1 in zone1 zit, zal lamp1 aan zijn als je de lampen in zone1 aanzet. Dus het kan niet voor komen dat lamp1 uit is wanneer de overige aan staan.
Gaan bij jou alle lampen wel aan of uit als je alle lampen in een zone aan of uit zet?
Anders een boolean variabele gebruiken ipv de status van lamp1.
Anders

Ah, je bedoeld dat deze kaart ontbreekt?

Dat zou je volgens mij voor moeten dragen in de ideeënbus (posten in categorie "Ideeën en Suggesties”)

Of:
Je kunt aan Device Capabilities app maker Arie vragen of hij een kaart of optie wil/kan toevoegen, met ‘Toggle’ in plaats van enkel Ja of Nee voor capability Yes/No.
Dan kun je een gehele zone ‘togglen’
afbeelding

Even voor de duidelijkheid: Homey heeft geen optie om gedachten te lezen. Dus als er in een kamer bepaalde lampen aan kunnen staan en andere lampen uit, dan weet Homey niet wat jij wilt als je op de knop drukt. Moet die bepaalde lampen uitgezet worden? Of juist de andere lampen aan?

1 Like

Of alle lampen in de groep die aanstaan uit zetten én alle lampen in dezelfde groep die uitstaan juist aanzetten :grin:

Dat is wat het HomeyScript doet, maar dat was kennelijk niet te bedoeling :sweat_smile:

1 Like

Dat is ook wat de beschrijving van de script zegt: https://chatgpt.com/share/40410f3d-5608-418c-be11-75a6904bff42

Ja precies, als je aan ChatGPT vraagt “toggle de lampen in een zone” dat doe ie precies wat je vraagt.

Maar ik begin te vermoeden dat OP met “togglen” bedoelt “zet alle lampen aan als de meeste lampen uit staan, en vice versa”. Of zoiets.

Wat ik bedoel is:

Als ik op de knop druk. Dan toggelen alle lampen in de zone aan
Of alle uit

En dan bedoel ik dus echt een zone. Dus niet een groep of iets anders. Want anders moet ik als ik een nieuwe lamp toevoeg aan de zone woonkamer bijvoorbeeld ook aan een groep deze lamp toevoegen.

Met vriendelijke groet,
Julian Borghuis

Met vriendelijke groet,
Julian Borghuis

Ah, met togglen bedoel je ‘schakelen’.

In Homey taal is ‘togglen’ namelijk de status omdraaien: iets wat uitstaat aanzetten, en v.v.:
Screenshot from 2024-09-02 18-35-28

Dan heb je m.i. dus gewoon deze kaarten nodig, die ik al heb laten zien:
Screenshot from 2024-09-02 18-19-41

Deze zijn voor iedere zone beschikbaar.
Vervolgens kies je wat je aan of uit wil zetten:
afbeelding

Deze kaart zet bij mij dan alle lampen in de zone [1.1] Keuken aan.

MAAR
Dit gaat meestal goed tot maximaal 3 apparaten. Homey schakelt namelijk niet alles netjes vlak na elkaar aan/uit, maar tegelijk. Dan gaan er soms signalen verloren met onverwachte effecten.

Je zult voor zones met veel lampen toch lampgroepen moeten maken, dan kan met de Device Capabilities app, of de < Groep > app.
Deze schakelen alle apparaten in een groep wél vlak na elkaar aan/uit!

1 Like

Heel jammer ;(

Met vriendelijke groet,
Julian Borghuis

Met vriendelijke groet,
Julian Borghuis

Ik zou het eerst even proberen, want je begon je vraag met dat de script niet werkte. En bij bij werkt het aan en uitzetten van een hele zone wel. Zal ook wel afhangen van welke apps en soorten schakelaars je gebruikt.
Daarnaast kun je de script zodanig aan(laten)passen dat alleen de lampen van de desbetreffende zone opgevraagd worden, en niet getoggled worden maar aan of uitgezet.