Eneco’s Toon thermostaat bedienen met Domoticz

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.

http://username:password@192.168.2.152:8080/json.htm?type=command&param=thermostatstate&idx=1&state=4

http://username:password@192.168.2.152:8080/json.htm?type=command&param=thermostatstate&idx=1&state=3

http://username:password@192.168.2.152:8080/json.htm?type=command&param=thermostatstate&idx=1&state=2

http://username:password@192.168.2.152:8080/json.htm?type=command&param=thermostatstate&idx=1&state=1

http://username:password@192.168.2.152:8080/json.htm?type=command&param=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.

De regels 12 t/m 36 kun je eventueel zelf naar wens aanpassen. Let er wel op dat bv. de temperaturen overeen moeten komen met de temperaturen die je op de thermostaat ingesteld hebt. Ook de namen (setpoint en levels) moeten exact (hoofdletter-gevoelig!) overeen komen.
-- 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

 

4 gedachten over “Eneco’s Toon thermostaat bedienen met Domoticz

  • 13 november 2018 om 06:35
    Permalink

    Klein beetje hulp gevraagd. Ik heb eerst een dummy hardware aangemaakt. Dit omdat ik Toon niet kon kiezen in de hardware lijst bij het maken van de switch.
    De switch heb ik naar beschrijving aangemaakt. 0, 1, 2, 3, 4 heb ik wel logisch gehouden, want dat lijkt wat door elkaar te gaan in de beschrijving (maakt voor het testen ook niet veel uit).

    De switch ziet er leuk uit, maar als ik een knop aanklik, dan reageert Toon daar helemaal niet op?
    Mocht ik de 0, 1, 2, 3, 4 verkeerd hebben, dan zou ik dat merken is een verkeerde temperatuur schakeling. Maar ik zie helemaal niets schakelen.
    Moet ik username:password aanpassen? Heb het standaard laten staan en aangepast, maar beide geen resultaat.

    Ik blijf het vreemd vonden dat ik in de hardware geen Toon kan kiezen voor de schakelaar.

    Beantwoorden
    • 13 november 2018 om 06:57
      Permalink

      Voordat je de switches aanmaakt moet je eerst Toon thermostaat toevoegen als hardware en inloggen met je Eneco account. Als je dit niet doet dan zullen de switches nooit werken (tenzij Toon geroot is).

      Beantwoorden
      • 13 november 2018 om 07:31
        Permalink

        Ik heb Toon in mijn hardware lijst staan. Kan deze ook bedienen. Maar dat gaat natuurlijk via mijn Eneco account.
        Daarom vind ik ook zo raar dat ik Toon niet als optie in de hardware lijst zie bij het maken van de schakelaar.

        Mijn Toon is nog standaard, dus niet geroot.

        Aan de Json regel te zien benader jij Toon rechtstreeks met het ip adres. Maar lukt dit wel bij een standaard Toon?

        Beantwoorden
        • 13 november 2018 om 07:58
          Permalink

          Ja, je kunt een niet geroote Toon via Domoticz bedienen. Het klopt dat je Toon niet ziet als schakelaar. Je moet bij deze stap Selector Switch kiezen. Vervolgens kun je de naam en het icoontje wijzigen

          Beantwoorden

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *