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¶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.

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

 

16 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
  • 2 december 2018 om 09:37
    Permalink

    Werkt dit ook als toon abonnement niet meer geactiveerd is?

    Beantwoorden
    • 2 december 2018 om 21:33
      Permalink

      Met een geroote Toon is dit ook mogelijk, maar is de werkwijze iets anders. Binnenkort zal hierover een artikel online komen.

      Beantwoorden
  • 11 december 2018 om 08:41
    Permalink

    Ik had dit ooit werkend, maar krijg nu een “error 401 Unauthorized” wanneer ik de selector gebruik. Action met of zonder username en password maakt niet uit. Enig idee? Ik draai wel beta version ( 4.10224), maar dat heeft verder nog geen problemen gegeven.

    Beantwoorden
  • 11 januari 2019 om 14:31
    Permalink

    Ik heb wat lopen stoeien met het Domoticz website protection password en authentication en nu werkt het ineens wel. Dus mocht iemand hier tegenaan lopen, probeer dit dan eens.
    Kees Kloost!

    Beantwoorden
  • 14 februari 2019 om 19:52
    Permalink

    Ik heb wat lopen stoeien met Toon, ik had toon toegevoegd aan domoticz maar kreeg het niet aan de praat, nu heb ik alles eraf gehaald dacht voeg ik het opnieuw toe. maar toon toevoegen doet hij wel maar Domoticz maakt niet meer die 7 devices aan?
    Iemand enig idee hoe dat kan ?

    Beantwoorden
  • 15 februari 2019 om 22:48
    Permalink

    Hier heb ik sinds ~ 12 februari issues met domoticz icm toon. Ik weet niet of dit aan een domoticz of toon update ligt. Kan iemand dubbelchecken ?
    domoticz V4.10415
    toon 5.0.4

    Beantwoorden
  • 18 februari 2019 om 23:23
    Permalink

    Dankjewel Joost voor de bevestiging. Erg jammer dat Eneco iets prima werkends de nek omdraait…. Van de nieuwe methode die in de plaats van toonopafstand is gekomen (https://developer.toon.eu/api-intro) snap ik nog geen pepernoot. Dat gaat weer een aantal avondjes uitpluizen worden…

    Beantwoorden

Geef een reactie

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