Geroote Toon bedienen met Domoticz

Nadat je jouw Toon succesvol hebt geroot ga je natuurlijk als eerste je Toon-abonnement bij Eneco opzeggen; het abonnement kost 4,50 EUR per maand en heb je niets meer aan. Maar hoe krijg je de data van Toon dan in Domoticz? En hoe kan je via Domoticz de Toon bedienen? 

Na het uitvoeren van onderstaande stappen is het mogelijk om informatie uit de Toon te in Domoticz te laten weergeven en de Toon vanuit Domoticz aan te sturen.

Toon > Domoticz

  • Huidige temperatuur (omgeving)
  • Ingestelde temperatuur (thermostaat)
  • Ingesteld programma
  • Ingestelde scene
  • Brander informatie (wordt de ketel gebruikt voor CV of Warm Water?)
  • Boiler temperatuur (ingaand en uitgaand)
  • Boiler temperatuur-setpoint
  • Keteldruk
  • Modulatie-level

Domoticz > Toon

  • Instellen temperatuur (thermostaat)
  • Instellen programma
  • Instellen scene

 

User variables

Allereerst gaan we 13 user variables aanmaken (Setup > More Options > User variables). In onderstaande tabel zie je eerst de “Variable name”, vervolgens het type (allemaal String) en tot slot de “Variable value”. Zorg ervoor dat je de namen en waarden exact overneemt (later kun je de namen eventueel wijzigen, maar dat scheelt voor nu wat debugging als er ergens iets niet goed gaat).

UV_ToonboilerModulationLevel        String    Boiler_Modulation_level
UV_ToonboilerPressure               String    Boilerdruk
UV_ToonboilerOutTempName            String    Temperatuur Boiler Uit
UV_ToonboilerInTempName             String    Temperatuur Boiler In
UV_ToonProgramInformationSensorName String    ToonProgramInformation
UV_ToonAutoProgramSensorName        String    ToonAutoProgram
UV_ToonScenesSensorName             String    Toon Scenes
UV_ToonTemperatureSensorName        String    Temperatuur Binnen
UV_ToonIP                           String    192.168.2.59
UV_ToonThermostatSensorName         String    ToonThermostat
UV_DomoticzIP                       String    192.168.2.62:8080
UV_ToonBurnerName                   String    ToonBranderInfo
UV_ToonBoilerTempSetpointSensorName String    ToonBoilerTempSetpoint

Bij UV_ToonIP geeft je als waarde het vaste IP van je Toon in en bij UV_DomoticzIP geef je het IP van Domoticz in inclusief het poort-nummer.

 

Virtuele devices

De volgende stap is om virtuele devices aan te maken, deze hebben we nodig om acties te kunnen uitvoeren of data te kunnen aflezen. Ga naar Setup -> Hardware en kies bij Type voor Dummy. Je mag zeg een herkenbare naam kiezen:

Zodra de Dummy Hardware toegevoegd is kunnen de virtuele sensoren gaan aanmaken. Klik hiervoor op Create Virtual Sensors (in het donkerblauw).

Maak nu de virtuele sensor aan van het type “Temperature” en geef “Temperatuur Binnen” als naam van de sensor in:

Maak op dezelfde wijze onderstaande virtuele sensoren aan:

ToonThermostat          - Thermostat Setpoint sensor
ToonAutoProgram         - Selector Switch sensor
ToonProgramInformation  - Text sensor
Toon Scenes             - Selector Switch sensor
ToonIP                  - Text Sensor
ToonBranderInfo         - Selector Switch sensor
ToonBoilerTempSetpoint  - Temperatuur sensor
Temperatuur Boiler In   - Temperatuur sensor
Temperatuur Boiler Uit  - Temperatuur sensor
Boilerdruk              - Pressure sensor
Boiler_Modulation_level - Percentage sensor

Voordat de scripts ingesteld kunnen worden zal de “ToonIP” Text-sensor ingevuld moeten worden met het IP-adres van de Toon. 

Het eerste IP-adres in onderstaande regel is het IP van Domoticz, het tweede IP-adres is het IP van Toon. Ook moet je bij idx= het IDX-nummer van de ToonIP-textsensor invullen.

http://192.168.2.62:8080/json.htm?type=command¶m=udevice&idx=14&nvalue=0&svalue=192.168.2.59

Geef deze URL in een willekeurig browser in, het resultaat zal dan zijn:

{
"status" : "OK",
"title" : "Update Device"
}

 

Sensoren instellen

Er moeten nog een aantal sensoren ingesteld worden, zodat de Toon hiermee
bediend kan worden. Ga binnen Domoticz naar het tabblad Switches.

ToonAutoProgram

Klik bij “ToonAutoProgram” op “Edit”

  • stel “Hide Off Level” in op “OFF”
  • Pas de “Level Names” aan:
    • 0 Off
    • 10 Nee
    • 20 Ja
    • 30 Tijdelijk
  • Pas de “Level Action” aan, gebruik het IP-adres van de Toon.
    • 0
    • 10 http://192.168.2.59/happ_thermstat?action=changeSchemeState&state=0
    • 20 http://192.168.2.59/happ_thermstat?action=changeSchemeState&state=1
    • 30
  • Druk op “Save” om de wijzigingen op te slaan

Toon Scenes

Klik bij “Toon Scenes” op “Edit”

  • stel “Hide Off Level” in op “OFF”
  • Pas de “Level Names” aan:
    • 0 Off
    • 10 Weg
    • 20 Slapen
    • 30 Thuis
    • 40 Comfort
    • 50 Handmatig
  • Pas de “Level Action” aan, gebruik het IP-adres van de Toon.
    • 0
    • 10 http://192.168.2.59/happ_thermstat?action=changeSchemeState&state=2&temperatureState=3
    • 20 http://192.168.2.59/happ_thermstat?action=changeSchemeState&state=2&temperatureState=2
    • 30 http://192.168.2.59/happ_thermstat?action=changeSchemeState&state=2&temperatureState=1
    • 40 http://192.168.2.59/happ_thermstat?action=changeSchemeState&state=2&temperatureState=0
    • 50 http://192.168.2.59/happ_thermstat?action=setSetpoint&Setpoint=60
  • Druk op “Save” om de wijzigingen op te slaan

BranderInfo

Klik bij “ToonBranderInfo” op “Edit”

  • Pas de “Level Names” aan:
    • 0 Off
    • 10 CV
    • 20 WW
  • Druk op “Save” om de wijzigingen op te slaan

 

Scripts

Om alles goed te laten werken gaan we gebruik maken van twee dzVents scripts. Ga naar Setup > More Options > Events en maak een nieuw dzVents-script aan, getriggerd door ‘device’. Haal de code die erin staat weg en plak ondestaande code erin. Geef het script een herkenbare naam (bv. Toon Setpoint), zet het script op actief en sla het op.

return {
   on = {
      devices = {
         'ToonThermostat'
      }
   },
   execute = function(domoticz, device)
      domoticz.openURL(string.format('http://%s/happ_thermstat?action=setSetpoint&Setpoint=%s', domoticz.variables('UV_ToonIP').value, device.setPoint*100))
            domoticz.log('Setting Toon setpoint to '.. device.setPoint)
   end
}

Maak vervolgens nog een dzVents-script aan, dit keer getriggerd door Timer. Haal de code weg en plak onderstaande code erin. Ook nu geef je het script een herkenbare naam (bv. Toon), zet je het op actief en sla je het op.

return {
   on = {
      timer = {
         'every minute'
      }
   },
   execute = function(domoticz)
        local ToonThermostat        = domoticz.variables('UV_ToonThermostatSensorName').value -- Sensor showing current setpoint
        local ToonTemperature       = domoticz.variables('UV_ToonTemperatureSensorName').value -- Sensor showing current room temperature
        local ToonBoilerTempIn      = domoticz.variables('UV_ToonboilerInTempName').value -- Sensor showing water temp return
        local ToonBoilerTempOut     = domoticz.variables('UV_ToonboilerOutTempName').value -- Sensor showing current water temp out
        local ToonBoilerPressure    = domoticz.variables('UV_ToonboilerPressure').value -- Sensor showing current room temperature
        local ToonBoilerModulation  = domoticz.variables('UV_ToonboilerModulationLevel').value -- Sensor showing current Boiler Modulation
        local ToonScenes            = domoticz.variables('UV_ToonScenesSensorName').value -- Sensor showing current program
        local ToonAutoProgram       = domoticz.variables('UV_ToonAutoProgramSensorName').value -- Sensor showing current auto program status
        local ToonProgramInformation = domoticz.variables('UV_ToonProgramInformationSensorName').value -- Sensor showing displaying program information status
        local ToonIP                = domoticz.variables('UV_ToonIP').value
        local DomoticzIP            = domoticz.variables('UV_DomoticzIP').value
        local ToonBurnerName        = domoticz.variables('UV_ToonBurnerName').value
--        local P1SmartMeterPower     = domoticz.variables('UV_P1SmartMeterElectra').value
--        local P1SmartMeterGas1      = domoticz.variables('UV_P1SmartMeterGasMeterStand').value
        local ToonBoilerSetpoint    = domoticz.variables('UV_ToonBoilerTempSetpointSensorName').value  -- Sensor showing current boiler set point water temp out
    
        -- Handle json
        local json = assert(loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()  -- For Linux
        
        local handle = assert(io.popen(string.format('curl http://%s/happ_thermstat?action=getThermostatInfo', ToonIP)))
        local ThermostatInfo = handle:read('*all')
        handle:close()
        
        local jsonThermostatInfo = json:decode(ThermostatInfo)
        
        if jsonThermostatInfo == nil then
            return
        end
        
        local handle2 = assert(io.popen(string.format('curl http://%s/boilerstatus/boilervalues.txt', ToonIP)))
        local BoilerInfo = handle2:read('*all')
        handle2:close()

        -- JSON data from Toon contains a extra "," which should not be there.
        BoilerInfo = string.gsub(BoilerInfo, ",}", "}")
        jsonBoilerInfo = json:decode(BoilerInfo)
        
         -- http://IP_TOON/hdrv_zwave?action=getDevices.json 
--        local handle4 = assert(io.popen(string.format('curl http://%s/hdrv_zwave?action=getDevices.json', ToonIP)))
--        local GasPowerInfo = handle4:read('*all')
--        handle4:close()
        
        -- JSON data from Toon contains a extra "." which should not be there.
--        GasPowerInfo = string.gsub(GasPowerInfo, "dev_4.", "dev_4")
--        GasPowerInfo = string.gsub(GasPowerInfo, "dev_4:", "dev_4\":")
        
--        local jsonGasPower = json:decode(GasPowerInfo)
        
       -- domoticz.log(jsonGasPower)
--         local CurrentElectricityFlowHoog = tonumber(jsonGasPower.dev_44.CurrentElectricityFlow )
--         local CurrentElectricityQuantityHoog = tonumber(jsonGasPower.dev_44.CurrentElectricityQuantity)
--         local CurrentElectricityFlowLaag = tonumber(jsonGasPower.dev_46.CurrentElectricityFlow )
--         local CurrentElectricityQuantityLaag = tonumber(jsonGasPower.dev_46.CurrentElectricityQuantity)
--         local CurrentGasFlow = tonumber(jsonGasPower.dev_41.CurrentGasFlow)
--         local CurrentGasQuantity = tonumber(jsonGasPower.dev_41.CurrentGasQuantity)
--         local CurrentElectricityQuantity =   CurrentElectricityFlowHoog + CurrentElectricityFlowLaag
--         local CurrentElectricityDeliveredLaag = 0
--         local CurrentElectricityDeliveredHoog = 0
--         local totalDeliveredPower = 0

--        domoticz.devices(P1SmartMeterPower).updateP1(CurrentElectricityQuantityLaag, CurrentElectricityQuantityHoog, CurrentElectricityDeliveredLaag, CurrentElectricityDeliveredHoog, CurrentElectricityQuantity, totalDeliveredPower).silent()
        
--        domoticz.devices(P1SmartMeterGas1).updateGas(CurrentGasQuantity).silent()

-- Update the Boiler Water In to current value
         local currentboilerInTemp = tonumber(jsonBoilerInfo.boilerInTemp)
        if domoticz.utils.round(domoticz.devices(ToonBoilerTempIn).temperature,0) ~= domoticz.utils.round(currentboilerInTemp,0) then
            -- domoticz.log('Updating Boiler Water In to current value: ' ..currentboilerInTemp)
            domoticz.devices(ToonBoilerTempIn).updateTemperature(currentboilerInTemp).silent()
        end
        
-- Update the Boiler water Out to current value
     local currentboilerOutTemp = tonumber(jsonBoilerInfo.boilerOutTemp)
        if domoticz.utils.round(domoticz.devices(ToonBoilerTempOut).temperature,0) ~= domoticz.utils.round(currentboilerOutTemp,0) then
            -- domoticz.log('Updating Boiler Water Out to current value: ' ..currentboilerOutTemp)
            domoticz.devices(ToonBoilerTempOut).updateTemperature(currentboilerOutTemp).silent()
        end
        
-- Update the Boiler water Pressure to current value
        local currentBoilerPressure = tonumber(jsonBoilerInfo.boilerPressure)
        if domoticz.utils.round(domoticz.devices(ToonBoilerPressure)._nValue,0) ~= domoticz.utils.round(currentBoilerPressure,0) then
            -- domoticz.log('Updating Boiler Pressure to current value: ' ..currentBoilerPressure)
            domoticz.devices(ToonBoilerPressure).updatePressure(currentBoilerPressure).silent()
        end

        local currentSetpoint = tonumber(jsonThermostatInfo.currentSetpoint) / 100
        local currentTemperature = domoticz.utils.round(tonumber(jsonThermostatInfo.currentTemp) / 100,1)
        local currentProgramState = tonumber(jsonThermostatInfo.programState)
            if currentProgramState == 0 then currentProgramState = 10 -- No
                elseif currentProgramState == 1 then currentProgramState = 20 -- Yes
                elseif currentProgramState == 2 then currentProgramState = 30 -- Temporary       
            end      
        local currentActiveState = tonumber(jsonThermostatInfo.activeState)
            if currentActiveState == -1 then currentActiveState = 50 -- Manual
                elseif currentActiveState == 0 then currentActiveState = 40 -- Comfort
                elseif currentActiveState == 1 then currentActiveState = 30 -- Home
                elseif currentActiveState == 2 then currentActiveState = 20 -- Sleep
                elseif currentActiveState == 3 then currentActiveState = 10 -- Away
elseif currentActiveState == 4 then currentActiveState = 60 -- Holiday end -- Update the toon burner selector to current program state local currentBurnerInfo = tonumber(jsonThermostatInfo.burnerInfo) local CurrentToonBurnerValue = domoticz.devices(ToonBurnerName).level if currentBurnerInfo == 0 then currentBurnerInfo = 0 -- uit elseif currentBurnerInfo == 1 then currentBurnerInfo = 10 -- cv aan elseif currentBurnerInfo == 2 then currentBurnerInfo = 20 -- warmwater aan
elseif currentBurnerInfo == 3 then currentBurnerInfo = 10 -- voorverwarmen volgend setpoint end if CurrentToonBurnerValue ~= currentBurnerInfo then -- Update toon burner selector if it has changed -- domoticz.log('Updating Toon burner info:') domoticz.devices(ToonBurnerName).switchSelector(currentBurnerInfo) end -- Update the modulation level of the burner local currentModulationLevel = tonumber(jsonThermostatInfo.currentModulationLevel) if domoticz.devices(ToonBoilerModulation).percentage + 1 ~= currentModulationLevel + 1 then -- domoticz.log('Updating the Modulation sensor to new value: ' ..currentModulationLevel) domoticz.devices(ToonBoilerModulation).updatePercentage(currentModulationLevel) end -- Update the temperature Boiler setpoint to current boiler set point local currentInternalBoilerSetpoint = jsonThermostatInfo.currentInternalBoilerSetpoint+1 if domoticz.utils.round(domoticz.devices(ToonBoilerSetpoint).temperature, 1) ~= domoticz.utils.round(currentInternalBoilerSetpoint, 1) then -- domoticz.log('Updating the Boiler internal temperature setpoint to new value: ' ..currentInternalBoilerSetpoint) domoticz.devices(ToonBoilerSetpoint).updateTemperature(currentInternalBoilerSetpoint) end -- Update the thermostat sensor to current setpoint if domoticz.devices(ToonThermostat).setPoint*100 ~= currentSetpoint*100 then -- domoticz.log('Updating thermostat sensor to new set point: ' ..currentSetpoint) domoticz.devices(ToonThermostat).updateSetPoint(currentSetpoint).silent() end -- Update the temperature sensor to current room temperature if domoticz.utils.round(domoticz.devices(ToonTemperature).temperature, 1) ~= domoticz.utils.round(currentTemperature, 1) then -- domoticz.log('Updating the temperature sensor to new value: ' ..currentTemperature) domoticz.devices(ToonTemperature).updateTemperature(currentTemperature) end -- Update the toon scene selector sensor to current program state if domoticz.devices(ToonScenes).level ~= currentActiveState then -- Update toon selector if it has changed -- domoticz.log('Updating Toon Scenes selector to: '..currentActiveState) domoticz.devices(ToonScenes).switchSelector(currentActiveState).silent() end -- Updates the toon auto program switch if domoticz.devices(ToonAutoProgram).level ~= currentProgramState then -- Update toon auto program selector if it has changed -- domoticz.log('Updating Toon Auto Program selector to: '..currentProgramState) domoticz.devices(ToonAutoProgram).switchSelector(currentProgramState).silent() end -- Updates the toon program information text box local currentNextTime = jsonThermostatInfo.nextTime local currentNextSetPoint = tonumber(jsonThermostatInfo.nextSetpoint) / 100 if currentNextTime == 0 or currentNextSetPoint == 0 then ToonProgramInformationSensorValue = 'Op ' ..currentSetpoint.. '°' else ToonProgramInformationSensorValue = 'Om ' ..os.date('%H:%M', currentNextTime).. ' op ' ..currentNextSetPoint.. '°' end if domoticz.devices(ToonProgramInformation).text ~= ToonProgramInformationSensorValue then -- domoticz.log('Updating Toon Program Information to: '..ToonProgramInformationSensorValue) domoticz.devices(ToonProgramInformation).updateText(ToonProgramInformationSensorValue) end end }

 

P1 Energie-meting (slimme meter)

Energie-meting, verbruik van elektra en gas, kun je via een P1-kabel naar je Toon laten versturen. Zelf heb ik ervoor gekozen om met een P1 USB-kabel deze gegevens direct naar Domoticz te sturen. Mocht je deze gegevens via Toon willen laten lopen, dan moet je regel 46, 47, 48, 50, 51, 52, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68 en 70 un-commenten. 

Tevens moet je op regel 51, 52, 57, 58, 59, 60, 61 en 62 het juiste dev_ nummer invullen. Het juiste nummer kun je vinden door onderstaande URL in te geven in een browser (uiteraard wel het IP van jouw Toon gebruiken):

http://192.168.2.59/hdrv_zwave?action=getDevices.json 

Het is wat lastig om de juiste dev_nummers te vinden, maar met wat puzzelen moet het wel lukken (de nummers zijn helaas niet voor iedere Toon gelijk).

Ook moet je nog even regel 20 en 21 un-commenten, en user variables aanmaken met dezelfde naam als in regel 20 en 21 staat. 

UV_P1SmartMeterElectra         String    Stroom
UV_P1SmartMeterGasMeterStand   String    Gas

Tot slot moet je nog een virtuele gas-sensor (naam: Gas) én een virtuele stroom-sensor (naam: Stroom) aanmaken.

 

Testen

Zodra alle dummy sensors, user variables en scripts goed zijn ingeladen kan er binnen de verschillende tabbladen in Domoticz informatie uitgelezen worden of instellingen ingesteld worden.

Via het tabblad “Temperature” kan bij “ToonTemperature” de omgevingstemperatuur van de Toon worden uitgelezen. De sensor “ToonBoilerTempSetpoint” laat de temperatuur van de Boiler in de CVketel zien.

Via het tabblad “Utility” kan bij “ToonThermostat” de temperatuur ingesteld worden welke daarna binnen enkele seconden doorgevoerd zou moeten worden in de Toon. De sensor “ToonProgramInformation” laat de ingestelde temperatuur zien. De sensor “ToonIP” laat het IP-adres van de Toon zien zoals eerder is ingesteld. De sensor Stroom en Gas laten het actuele verbruik zien en de meterstand.

Via het tabblad “Switches” kan bij “ToonScenes” een scene ingesteld worden, bijvoorbeeld “Away” of “Sleep”.
Ook kan er bij “ToonAutoProgram” ingesteld worden of het in de Toon ingestelde programma aan- of uitgezet moet worden. De sensor “ToonBranderInfo” laat zien of de CV-ketel gebruikt wordt voor CVverwarming(CV) of voor warm water (WW).

De sensoren “ToonBoilerTempSetpoint” en “ToonBranderInfo” werken alleen als de Toon modulair is aangesloten op de CV-ketel.

34 gedachten over “Geroote Toon bedienen met Domoticz

  • 23 december 2018 om 17:21
    Permalink

    Wat een mooie site.
    Ik ben in het bezit van een geroote Toon welke ik bedien via Domoticz op een Raspberry.
    Het uitlezen van de meterstanden via Toon en het volgen van de branderstatus was niet in mijn script opgenomen. Deze heb ik nu van deze site overgenomen.
    De branderinformatie werkt perfect. Het uitlezen van de meterinformatie krijg ik echter niet voor elkaar.
    De variabele “GasPowerInfo” geeft zowel voor als na de decodering een “.” bij het device.
    In mijn geval “dev_13.1” voor gas. Na decodering zijn de aparte regels verdwenen en staat alles op 1 regel met een andere volgorde.
    Als ik de waarde wil ophalen (regel 61 van het script) dan werkt de boel niet.
    Als ik “.dev_131” opgeef dan krijg ik een foutmelding “index field ‘dev_131’ (a nil value)”.
    Als ik “.dev_13.1” opgeef dan krijk ik een foutmelding “malformed number near ‘.1.C’ ”
    Zoals al in het script staat is de punt het punt.
    Is er een oplossing mogelijk ?

    Beantwoorden
    • 24 december 2018 om 18:40
      Permalink

      Inmiddels de boel aan de praat gekregen.
      Een foutje bij het kopieeren.
      Prettige Kerst
      Johan

      Beantwoorden
  • 27 december 2018 om 19:27
    Permalink

    Hoi leuke blog werk perfect met deze uitleg.

    Alleen loop ik toch tegen iets klein aan. Het volgende wat ik wil doen is via domoticz blockly en schakeling maken als volg :

    Als keuzeschakelaar (Toon Scene) op Weg gaat omdat ik op toon op weg druk wil ik dat er een schakelaar aan gaat die zeg dat ik weg ben maar dat gebeurt niet. Het gebeurt alleen als ik via domoticz zelf op weg druk wel. Weet iemand hier een oplossing voor?

    Alvast bedankt.

    Beantwoorden
    • 8 januari 2019 om 08:54
      Permalink

      Hoi Danny,

      In Domoticz triggeren op een actie die je op de Toon uitvoert gaat niet. Maar de status van de Toon wordt elke minuut uitgelezen. De juiste programma wordt in Toon Scene gezet.
      Deze waarde kan je ook elke minuut uitlezen en een andere selectorswitch mee “bedienen”.
      In DzVents ziet het er zo uit:

      return {on = {timer = {‘every 1 minutes’} },
      execute = function(domoticz, timer)
      local prog = domoticz.devices(‘ToonScenes’)
      local aanw = domoticz.devices(‘AANWEZIG’)

      if prog.state == ‘Weg’
      then
      aanw.switchSelector(10) –10 = “Ik ben er niet”
      else
      aanw.switchSelector(20) –20 = “Ik ben thuis”
      end
      end
      }

      Zelf nog een selectorswitch maken met de regels 10 en 20.

      Beantwoorden
      • 10 februari 2019 om 18:26
        Permalink

        Richard bedankt voor je script.
        Ik ga het proberen top.

        Beantwoorden
  • 17 januari 2019 om 12:24
    Permalink

    Hallo,

    Bedankt voor deze prachtige website een duidelijke uitleg. Ik heb bovenstaand handleiding gevolgd voor mijn Toon, alleen het laatste script geeft een foutmelding welke ik niet kan verklaren.

    De log van Domoticz laat het volgende zien:

    2019-01-17 12:23:00.803 Status: dzVents: Error (2.4.6): An error occured when calling event handler Toon
    2019-01-17 12:23:00.803 Status: dzVents: Error (2.4.6): /home/erwin/domoticz/scripts/lua/JSON.lua:660: html passed to JSON:decode():
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803 404 – Not Found
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803 404 – Not Found
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803
    2019-01-17 12:23:00.803 Status: dzVents: Info: —— Finished Toon

    Kan iemand mij hier verder mee helpen?
    Alvast bedankt!!

    Groet,
    Erwin

    Beantwoorden
  • 19 januari 2019 om 15:28
    Permalink

    Het script gaf bij mij een foutmelding bij het opvragen van de boilerstatus.(404 not found)
    Ben er even mee bezig geweest maar ik kwam er niet uit. Nu blijkt dat ik de app “boilerstatus” in Toon niet had geïnstalleerd.
    Misschien heeft iemand er iets aan.

    Vgr Johan

    Beantwoorden
    • 30 mei 2019 om 12:15
      Permalink

      Precies dit probleem had ik ook, dank dat je hebt laten weten wat bij jou de oplossing was!

      Beantwoorden
  • 19 januari 2019 om 19:21
    Permalink

    Dag,
    Dank voor deze uitvoerige en duidelijke handleiding.
    Heb getracht het netjes te volgen en een aantal dingen werken al. Kan alleen de tempratuur nog niet instellen.
    Heb een vraag over dit commando:
    ttp://192.168.2.62:8080/json.htmtype=command&param=udevice&idx=14&nvalue=0&svalue=192.168.2.59
    Wat vul ik in op de plek nvalue=0? Is dat het unit nummer van Toonip??
    Hoor graag van je!

    Beantwoorden
  • 7 februari 2019 om 13:57
    Permalink

    hallo,
    Top uitleg, veel werkt er al bij me. Krijg alleen een foutmelding in het script toon, op regel 25. Dat verwijst naar /home/pi………. Mijn domoticz is op een synology nas geïnstalleerd. Denk een andere directory???

    Wie helpt me even verder?

    Beantwoorden
  • 10 februari 2019 om 21:45
    Permalink

    Hoi,

    Goede handleiding. Heb alles wel aangemaakt en aangepast zoals beschreven.
    Echter kan ik de waardes niet uit de Toon uitlezen.
    Het script / log geeft onderstaande error,
    2019-02-10 21:43:00.502 Status: dzVents: Info: —— Start internal script: Toon:, trigger: every minute
    2019-02-10 21:43:00.503 Status: dzVents: Error (2.4.13): There is no uservariable with that name or id: UV_ToonTemperatureSensorName
    2019-02-10 21:43:00.503 Status: dzVents: Error (2.4.13): An error occured when calling event handler Toon
    2019-02-10 21:43:00.503 Status: dzVents: Error (2.4.13): …e/pi/domoticz/scripts/dzVents/generated_scripts/Toon.lua:9: attempt to index a nil value
    2019-02-10 21:43:00.503 Status: dzVents: Info: —— Finished Toon

    Als ik echter bij de user variabelen kijk dan staan ze er gewoon,
    Ik snap niet precies waar ik iets fout heb gedaan??

    18 UV_ToonThermostatSensorName String ToonThermostat 2019-02-10 21:27:23
    17 UV_ToonBoilerTempSetpointSensorName String ToonBoilerTempSetpoint 2019-02-10 20:06:51
    16 UV_ToonBurnerName String ToonBranderInfo 2019-02-10 20:06:32
    15 UV_DomoticzIP String 10.10.0.128:8080 2019-02-10 20:14:21
    13 UV_ToonIP String 10.10.0.115 2019-02-10 20:05:14
    12 UV_ToonTemperatureSensorName String Temperatuur Binnen 2019-02-10 20:04:41
    11 UV_ToonScenesSensorName String Toon Scenes 2019-02-10 20:04:18
    10 UV_ToonAutoProgramSensorName String ToonAutoProgram 2019-02-10 20:03:50
    9 UV_ToonProgramInformationSensorName String ToonProgramInformation 2019-02-10 20:03:30
    8 UV_ToonboilerInTempName String Temperatuur Boiler In 2019-02-10 20:03:10
    7 UV_ToonboilerOutTempName String Temperatuur Boiler Uit 2019-02-10 20:02:47
    6 UV_ToonboilerPressure String Boilerdruk 2019-02-10 20:02:22
    5 UV_ToonboilerModulationLevel String Boiler_Modulation_level 2019-02-10 20:02:03

    Beantwoorden
    • 19 februari 2019 om 12:27
      Permalink

      Alles maar eens verwijderd en helemaal opnieuw gestart.
      Alles werkt nu Super!!!
      Ergens dus toch iets van een foutje gemaakt 🙂

      Beantwoorden
  • 12 februari 2019 om 20:26
    Permalink

    Probeer deze:
    json = assert(loadfile “/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua”)() — For Synology

    Grt,
    Dennis

    Beantwoorden
  • 17 februari 2019 om 20:02
    Permalink

    Sinds een paar dagen verschijnen er geen apps meer in de app-store.
    Iemand een idee?
    Met vriedelijke groeten,
    Johan

    Beantwoorden
  • 25 februari 2019 om 19:25
    Permalink

    Goede avond,

    Allereerst wat een mooie site. Hier staan leuke ideeën op war ik wat me kan.

    Het volgende. Ik wil deze wijze van bediening graag gebruiken. Alles lijkt goed te zijn ingeladen, gezien ik geen errors heb. Alleen wordt geen informatie uit mijn toon gehaald. Dus geen drukken, temperaturen, statussen etc. Alleen manual temperatuur hoger en lager lukt.
    Alle virtual sensors zijn correct aangemaakt als ook mijn user variables. Ook is mijn ToonIP bekend in Domoticz.

    Kan iemand mij hiermee helpen?

    Alvast bedankt

    Beantwoorden
    • 25 februari 2019 om 20:40
      Permalink

      BTW ik draai Domoticz op Ubuntu server. Misschien handig om te weten.

      Groet
      Mark

      Beantwoorden
  • 23 maart 2019 om 18:47
    Permalink

    Bedankt voor dit mooie script. Het werk bij mij bijna helemaal.

    Ik krijg de volgende foutmelding in domoticz.lua bij het afwikkelen van een functie aangeroepen door toon.

    Status: dzVents: Info: —— Start internal script: Toon:, trigger: every minute
    Status: dzVents: Error (2.4.6): An error occured when calling event handler Toon
    Status: dzVents: Error (2.4.6): /home/pi/domoticz/dzVents/runtime/Domoticz.lua:159: attempt to perform arithmetic on local ‘x’ (a nil value)

    wat me opvalt is dat de temperatuur binnen niet wordt weergegeven in ToonProgramInformation deze blijft staan op Hello World.

    Ik zit al een paar uur te turen naar mijn scherm maar ik zie niet war het mis gaat.
    Kan je me helpen?

    Beantwoorden
  • 4 april 2019 om 14:50
    Permalink

    Had ik ook. Bleek Toon geen wifiverbinding te hebben ook al gaf het statusscherm drie groene blokken. Het viel me op doordat het ip adres uit alleen maar nullen bestond. Verbinding hersteld en alles werkte weer.

    Beantwoorden
    • 4 april 2019 om 21:45
      Permalink

      Helaas is dat bij mij niet het probleem. Alles werkt behalve bovenstaande. Binnenkort een andere handleiding volgen hopelijk dan meer succes.

      Beantwoorden
  • 6 april 2019 om 12:53
    Permalink

    Ik heb vandaag het probleem gevonden.
    na wat updates en toevoegingen op mijn PI en na het toevoegen van de buienradar plugin en inmiddels ook overgegaan naar de Beta versie van Domoticz was de bovenstaande foutmelding verdwenen en zag nu een andere foutmelding die wel duidelijk was.
    Ik heb teveel wijzigingen doorgevoerd om aan te duiden waardoor de foutmelding is veranderd naar een duidelijkere omschrijving.
    Mijn oplossing was uiteindelijk het toevoegen van het virtuele device “Temperatuur Binnen” na deze te hebben aangemaakt werkt het script volledig. alle foutmeldingen zijn weg.
    Nogmaals hartelijk dank voor dit mooie script. Ik ben blij dat ik het even heb laten rusten. Soms kan je, je zo blind staren op iets dat je er overheen blijft kijken.

    Beantwoorden
  • 13 april 2019 om 09:40
    Permalink

    IK heb het deels aan het lopen maar krijg deze foutmelding:

    2019-04-13 09:39:02.808 Status: dzVents: Error (2.4.17): An error occured when calling event handler Toon
    2019-04-13 09:39:02.808 Status: dzVents: Error (2.4.17): …e/pi/domoticz/scripts/dzVents/generated_scripts/Toon.lua:137: attempt to perform arithmetic on field ‘setPoint’ (a nil value)

    Iemand enig idee?

    Beantwoorden
  • 30 april 2019 om 22:08
    Permalink

    Goedeavond,

    Ik heb alles lopen, maar ik krijg die dev nummers niet goed. Als ik 3.2 wil doen dan komt er een kruis voor de regel en word de cijfer na de . blauw.

    Hoe krijg ik de juite dev nummers in het script.

    Groet Dennis

    Beantwoorden
  • 7 mei 2019 om 17:43
    Permalink

    Ik heb een paar regels aangepast en toegevoegd, want bij mij gaf hij niet het momentele gasverbruik weer, maar het totale. Dit is niet zo handig als je ook het kosten script gebruikt.

    Ik heb dit verandert in de toon script
    domoticz.log(jsonGasPower)
    local CurrentElectricityFlowHoog = tonumber(jsonGasPower.dev_44.CurrentElectricityFlow )
    local CurrentElectricityQuantityHoog = tonumber(jsonGasPower.dev_44.CurrentElectricityQuantity)
    local CurrentElectricityFlowLaag = tonumber(jsonGasPower.dev_46.CurrentElectricityFlow )
    local CurrentElectricityQuantityLaag = tonumber(jsonGasPower.dev_46.CurrentElectricityQuantity)
    local CurrentGasFlow = tonumber(jsonGasPower.dev_41.CurrentGasFlow)
    local CurrentGasQuantity = tonumber(jsonGasPower.dev_41.CurrentGasQuantity)
    local CurrentElectricityQuantity = CurrentElectricityFlowHoog + CurrentElectricityFlowLaag
    local CurrentElectricityDeliveredLaag = 0
    local CurrentElectricityDeliveredHoog = 0
    local totalDeliveredPower = 0
    domoticz.devices(P1SmartMeterPower).updateP1(CurrentElectricityQuantityLaag, CurrentElectricityQuantityHoog, CurrentElectricityDeliveredLaag, CurrentElectricityDeliveredHoog, CurrentElectricityQuantity, totalDeliveredPower).silent()

    domoticz.devices(P1SmartMeterGas1).updateGas(CurrentGasQuantity).silent()

    Verandert naar

    domoticz.log(jsonGasPower)
    local CurrentElectricityFlowHoog = tonumber(jsonGasPower.dev_24.CurrentElectricityFlow )
    local CurrentElectricityQuantityHoog = tonumber(jsonGasPower.dev_24.CurrentElectricityQuantity)
    local CurrentElectricityFlowLaag = tonumber(jsonGasPower.dev_26.CurrentElectricityFlow )
    local CurrentElectricityQuantityLaag = tonumber(jsonGasPower.dev_26.CurrentElectricityQuantity)
    local CurrentGasFlow = tonumber(jsonGasPower.dev_21.CurrentGasFlow)
    local CurrentGasQuantity = tonumber(jsonGasPower.dev_21.CurrentGasQuantity)
    local CurrentElectricityQuantity = CurrentElectricityFlowHoog + CurrentElectricityFlowLaag
    local CurrentElectricityDeliveredLaag = 0
    local CurrentElectricityDeliveredHoog = 0
    local CurrentGasDelivered = 0
    local totalDeliveredGas = 0
    local totalDeliveredPower = 0

    domoticz.devices(P1SmartMeterPower).updateP1(CurrentElectricityQuantityLaag, CurrentElectricityQuantityHoog, CurrentElectricityDeliveredLaag, CurrentElectricityDeliveredHoog, CurrentElectricityQuantity, totalDeliveredPower).silent()

    domoticz.devices(P1SmartMeterGas1).updateGas(CurrentGasQuantity, CurrentGasDelivered, CurrentGasFlow, totalDeliveredGas).silent()

    Nu geeft die bij mij netjes de dagverbruik weer en het totaal verbruik, en de kosten zijn ook weer goed met het kosten script.

    Beantwoorden
  • 12 juni 2019 om 22:36
    Permalink

    Ook ik ben aan het stoeien om alles werkend te krijgen, ben aardig eind of weg…maar loopt toch nu echt vast. De temperatuur binnen geeft continu een rare waarde aan (192.17), geen idee waar deze waarde vandaan komt of hoe ik het kan omzetten naar de juiste waarde. Tips en trucs zijn welkom!

    Beantwoorden
    • 12 juni 2019 om 22:41
      Permalink

      Geen idee wat je fout gedaan hebt, maar die temperatuur lijkt mij het begin van een intern IP-adres. Denk dat je het in die richting moet zoeken.

      Beantwoorden
      • 16 juni 2019 om 23:58
        Permalink

        Heb inderdaad een IP adres handmatig ingegeven op de IDX…maar het probleem is dat de Toon niet uitgelezen wordt. Bedienen kan wel (temp en scene setting). Maar bv Temperatuur binnen krijgt niets binnen. Kan nergens een typ of kopieerfout vinden.

        Beantwoorden
        • 18 juni 2019 om 07:18
          Permalink

          Krijg je foutmeldingen in de log? Indien ja, plaats de foutmeldingen eens hier. Indien geen foutmeldingen, dan is mijn advies om de aangemaakte devices, user variables en sripts een keer te verwijderen en opnieuw te beginnen. Ergens een onterechte spatie kan al funest zijn.

          Beantwoorden
  • 18 juni 2019 om 04:21
    Permalink

    Temperatuur lezing heb ik voor elkaar. Al moet ook ik toegeven dat het niet duidelijk is waardoor dit komt. Heb het hele “toon”script verwijderd en nogmaals gekopieerd en toen werkte het…toch ergens een kopie fout gemaakt?

    Heb nu nog wel een nadere uitdaging de Gas en Stroomverbruik komt niet binnen, log file geeft de volgende error:
    2019-06-18 04:15:00.259 Status: dzVents: Error (2.4.19): error loading module ‘Toon’ from file ‘/home/pi/domoticz/scripts/dzVents/generated_scripts/Toon.lua’:
    2019-06-18 04:15:00.259 …e/pi/domoticz/scripts/dzVents/generated_scripts/Toon.lua:52: ‘)’ expected near ‘:’
    Lijkt erop dat er iets fout staat in regel 52, maar heb veel variaties getest maar als ik iets verander dan ontstaat er een andere error
    dzVents: Error (2.4.19): An error occured when calling event handler Toon
    2019-06-18 04:02:00.330 Status: dzVents: Error (2.4.19): /home/pi/domoticz/scripts/lua/JSON.lua:1009: /home/pi/domoticz/scripts/lua/JSON.lua:660: expected colon at char 613 of: –> gevolgd met de JSON string van de toon
    Herkent iemand dit?

    Beantwoorden
    • 19 juni 2019 om 03:02
      Permalink

      Het werkt!

      Voor degene die dezelfde issues heeft…
      Ik heb de regels 51 en 52 aangepast naar;
      GasPowerInfo = string.gsub(GasPowerInfo, “dev_2.”, “dev_2”)
      GasPowerInfo = string.gsub(GasPowerInfo, “dev_2:”, “dev_2\”:”)

      Daarnaast had ik het verkeerde Stroom type gekozen. De juiste moet zijn P1 Smart meter (Electric)
      Doe er je voordeel mee 🙂

      Beantwoorden
  • 2 juli 2019 om 11:15
    Permalink

    Hoi,

    Ik ben ook bezig met een geroote Toon en domoticz, het toevoegen van de variablen en script lukt allemaal. Na mijn idee lukt het ook met de dev nummers.
    Ik krijg alleen al voor het toevoegen (lees un-commenten van de slimmemeter regels) een foutmelding.

    wanneer ik de slimmemeter regels wel actief heb krijg ik een nihil waarde terug op mijn stroom meters. maar de onderstaande melding hou ik altijd wanneer ik denk dat opgelost te hebben.

    2019-07-02 11:10:00.577 Status: dzVents: Info: —— Start internal script: Toon:, trigger: every minute
    2019-07-02 11:10:00.842 Status: dzVents: Error (2.4.19): An error occured when calling event handler Toon
    2019-07-02 11:10:00.843 Status: dzVents: Error (2.4.19): /home/pi/domoticz/dzVents/runtime/Domoticz.lua:172: attempt to perform arithmetic on local ‘x’ (a nil value)
    2019-07-02 11:10:00.843 Status: dzVents: Info: —— Finished Toon

    Iemand enig idee wat hier fout gaat in het script?
    Het vreemde is overigens wel dat ik met minder enters ook een foutmelding krijg op lijn 172. dat is normaal de eerste lege regel onder het script

    (na wat troubleshooten zijn de regel nummers in domoticz gelijk als in het script hierboven. (wanneer ik het kopieer verdwijnen er spontaan wat enters)

    Beantwoorden
  • 13 juli 2019 om 13:42
    Permalink

    mooi opgezette site, heb er al veel voordeel mee gehad.

    ik ben helaas opnieuw begonnen met het instellen van domoticz. nu heb ik het volgende issue:
    als ik:
    http://192.168.178.52:8080/json.htm?type=command%C2%B6m=udevice&idx=74&nvalue=0&svalue=192.168.178.27
    in de browser invoer krijg ik als antwoord:
    {
    “status” : “ERR”
    }

    heb geen idee wat er mee aan de hand is. wie weet kan jij er wel wat mee?

    groeten en alvast bedankt voor je reactie.

    kevin

    Beantwoorden
  • 21 juli 2019 om 16:16
    Permalink

    local settings heb ik het netwerkadres ingevuld eindigend op een 0. ook met de nieuwe url die je me hebt gegeven blijft het antwoord err. ik heb voor de vorm even geen wachtwoord/username in gebruik om te testen. is er een setting die ik moet veranderen in toon? hij heeft toegang tot toon op afstand, lokale toegang is aan en hij is ingesteld voor onderzoek. ik weet dat toon op afstand niet meer werkt omdat ik geen abbo meer heb. en het onderzoek zal het om de zelfde reden ook niet meer doen.

    Beantwoorden

Geef een reactie

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