Mocht je een Toon thermostaat hebben van Eneco dan kun je deze heel eenvoudig toevoegen en bedienen in Domoticz. In dit artikel leggen we uit hoe je een selector in Domoticz kunt maken, zodat je het programma van gemakkelijk kunt switchen. Daarnaast kun je gegevens van Toon, zoals de kamertemperatuur in Blockly-events gebruiken voor allerlei doeleinden.
Toon toevoegen
Ga naar SETUP > HARDWARE en voeg Toon Thermostaat toe als type. Bij username/password vul je de gegevens in van Mijn Eneco. Let op! bij username moet het email-adres (!) staan.
Als je nu naar SETUP > DEVICES gaat zal je zien dat er zeven devices aangemaakt zijn. Klik op het groene pijltje om een bepaalde device toe te voegen aan het tabblad Switches. Daarnaast heb ik in de kolom Name bij een aantal devices de naam aangepast. Let er goed op dat als je een naam wijzigt deze later in het LUA-script ook gewijzigd moet worden, aangezien de namen exact overeen moeten komen.
In de eerste kolom (Idx) zie je cijfers staan, deze hebben we dadelijk nodig om de selector aan te maken.
Selector Switch aanmaken
We gaan nu een selector switch aanmaken. Belangrijk is om bij Switch Type te kiezen voor Selector. Hieronder vind je een voorbeeld hoe je alles moet invullen. Let er op dat de namen (en level-namen) van de selector switch exact overeen moeten komen in het LUA-script.
Met de json commando’s kunnen we het programma op Eneco’s Toon wijzigen. Indien je in Domoticz een gebruikersnaam/wachtwoord ingesteld hebt dan moet je deze ook in de URL zetten. Het IP en de poort zijn van Domoticz. Ik heb ook een optionele ‘Off’-level aangemaakt, welke gedurende de zomermaanden gebruikt kan worden.
Om het wat makkelijker te maken kun je onderstaande selector actions kopiëren. Uiteraard moet je de vetgedrukte delen aanpassen naar jouw eigen situatie.
1 2 3 4 5 |
http://username:password@192.168.2.152:8080/json.htm?type=command¶m=thermostatstate&idx=1&state=4 http://username:password@192.168.2.152:8080/json.htm?type=command¶m=thermostatstate&idx=1&state=3 http://username:password@192.168.2.152:8080/json.htm?type=command¶m=thermostatstate&idx=1&state=2 http://username:password@192.168.2.152:8080/json.htm?type=command¶m=thermostatstate&idx=1&state=1 http://username:password@192.168.2.152:8080/json.htm?type=command¶m=thermostatstate&idx=1&state=0 |
Vergeet op het einde niet om op Save te klikken! Uiteindelijk zal je selector er zo uitzien:
Je kunt nu vanuit Domoticz je Eneco’s Toon thermostaat bedienen,erg handig! Maar wat nu als je het programma op de thermostaat zelf aanpast? Dan wil je dat natuurlijk in Domoticz terugzien, of niet?
Eneco’s Toon LUA-script
Sla onderstaand script op met de naam script_time_toonselector.lua
in de folder /home/pi/domoticz/scripts/lua/
. Het script zal nu automatisch iedere minuut draaien en de status van het Toon-programma in Domoticz updaten (indien je het programma op de thermostaat zelf hebt gewijzigd.
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 |
-- script_time_toonselector.lua -- Reads the Toon Thermostat Setpoint Temperature and updates the -- selector in Domoticz to represent the current Active State. -- Off scene is an option, leave it out if not needed. -- Action commands will not be executed. commandArray = {} -- Settings: Configure as desired -- Name of the switch with the temperature setpoint. ThermostatSetPointName = 'Ingestelde temperatuur' --Must match the name of you SetPoint device --Temperature SetPoints. OffSetPoint = '6.00' --optional AwaySetPoint = '18.00' SleepSetPoint = '13.00' HomeSetPoint = '19.50' ComfortSetPoint = '21.00' -- Name of the selector for Toon ToonSelector = 'Toon Scenes' --Must match (including case) the name of your Selector Switch -- Name of the levels in the selector OffLevel = 'Uit' --optional AwayLevel = 'Weg' SleepLevel = 'Slapen' HomeLevel = 'Thuis' ComfortLevel = 'Comfort' -- Values from each level name OffLevelValue = '0' --optional AwayLevelValue = '10' SleepLevelValue = '20' HomeLevelValue = '30' ComfortLevelValue = '40' -- End of settings -- Toon Thermostat SetPoint: ThermostatSetPoint = otherdevices_svalues[ThermostatSetPointName] if (ThermostatSetPoint == HomeSetPoint) then --print("SetPoint equals to Home"); if (otherdevices[ToonSelector] ~= HomeLevel) then print("Updating '" .. ToonSelector .. "' selector to '" .. HomeLevel .. "'") commandArray['UpdateDevice'] = otherdevices_idx[ToonSelector]..'|1|'..HomeLevelValue end elseif (ThermostatSetPoint == ComfortSetPoint) then --print("SetPoint equals to Comfort"); if (otherdevices[ToonSelector] ~= ComfortLevel) then print("Updating '" .. ToonSelector .. "' selector to '" .. ComfortLevel .. "'") commandArray['UpdateDevice'] = otherdevices_idx[ToonSelector]..'|1|'..ComfortLevelValue end elseif (ThermostatSetPoint == SleepSetPoint) then --print("SetPoint equals to Sleep"); if (otherdevices[ToonSelector] ~= SleepLevel) then print("Updating '" .. ToonSelector .. "' selector to '" .. SleepLevel .. "'") commandArray['UpdateDevice'] = otherdevices_idx[ToonSelector]..'|1|'..SleepLevelValue end elseif (ThermostatSetPoint == AwaySetPoint) then --print("SetPoint equals to Away"); if (otherdevices[ToonSelector] ~= AwayLevel) then print("Updating '" .. ToonSelector .. "' selector to '" .. AwayLevel .. "'") commandArray['UpdateDevice'] = otherdevices_idx[ToonSelector]..'|1|'..AwayLevelValue end -- Optional elseif (ThermostatSetPoint == OffSetPoint) then --print("SetPoint equals to Off"); if (otherdevices[ToonSelector] ~= OffLevel) then print("Updating '" .. ToonSelector .. "' selector to '" .. OffLevel .. "'") commandArray['UpdateDevice'] = otherdevices_idx[ToonSelector]..'|1|'..OffLevelValue end end return commandArray |