• Categorie archieven Domoticz
  • 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 je 4,50 € per maand daar heb je nu 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

    (Stap 1)

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

    1: UV_ToonboilerModulationLevel        String Boiler_Modulation_level
    2: UV_ToonboilerPressure               String Boilerdruk
    3: UV_ToonboilerOutTempName            String Temperatuur Boiler Uit
    4: UV_ToonboilerInTempName             String Temperatuur Boiler In
    5: UV_ToonProgramInformationSensorName String ToonProgramInformation
    6: UV_ToonAutoProgramSensorName        String ToonAutoProgram
    7: UV_ToonScenesSensorName             String Toon Scenes
    8: UV_ToonTemperatureSensorName        String Temperatuur Binnen
    9: UV_ToonIP                           String 10.0.0.180
    10: UV_ToonThermostatSensorName         String ToonThermostat
    11: UV_DomoticzIP                       String 10.0.0.1:8080
    12: UV_ToonBurnerName                   String ToonBranderInfo
    13: 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:

    colandino.nl

     

    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:

    (Stap 2)


    1: ToonThermostat - Thermostat Setpoint sensor
    2: ToonAutoProgram - Selector Switch sensor
    3: ToonProgramInformation - Text sensor
    4: Toon Scenes - Selector Switch sensor
    5: ToonIP - Text Sensor
    6: ToonBranderInfo - Selector Switch sensor
    7: ToonBoilerTempSetpoint - Temperatuur sensor
    8: Temperatuur Boiler In - Temperatuur sensor
    9: Temperatuur Boiler Uit - Temperatuur sensor
    10: Boilerdruk - Pressure sensor
    11: 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.(Zie nr. 9 van stap 1)
    10.0.0.1:8080/json.htm?type=command&param=udevice&idx=22058&nvalue=0&svalue=10.0.0.180

    Bovenstaande regel wordt niet altijd juist getoond, onderstaande regel zou hetzelfde resultaat moeten geven:
    http://10.0.0.1:8080/json.htm?param=udevice&type=command&idx=22058&nvalue=0&svalue=10.0.0.180

    Geef deze URL in een willekeurig browser in, het resultaat zal dan zijn:
    { “status” : “OK”,
    “title” : “Update Device”
    }

    (Stap 3)

    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://10.0.0.180/happ_thermstat?action=changeSchemeState&state=0
      • 20 http://10.0.0.180/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://10.0.0.180/happ_thermstat?action=changeSchemeState&state=2&temperatureState=3
      • 20 http://10.0.0.180/happ_thermstat?action=changeSchemeState&state=2&temperatureState=2
      • 30 http://10.0.0.180/happ_thermstat?action=changeSchemeState&state=2&temperatureState=1
      • 40 http://10.0.0.180/happ_thermstat?action=changeSchemeState&state=2&temperatureState=0
      • 50 http://10.0.0.180/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.

    Lua
    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://10.0.0.180/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.


  • Shelly 1PM WiFi schakelaar toevoegen in Domoticz

    Met de Shelly 1PM is een compacte schakelaar welke je niet alleen als schakelaar kunt gebruiken, maar ook om het stroomverbruik te meten. Deze slimme schakelaar is dus uitermate geschikt om te gebruiken als lichtschakelaar of om het stroomverbruik te meten van de wasmachine of wasdroger. Tevens is hij eenvoudig te integreren in Domoticz, Home Assistant of een ander huisautomatiseringssysteem.

    De Shelly 1PM is eenvoudig te installeren achter een stopcontact of wandschakelaar (handig voor als je kinderen nog steeds niet weten dat een lichtschakelaar ook bedoeld is om het licht uit te doen). De Shelly 1PM werkt op een spanning van 110-230VAC of 24-60VDC bij maximaal 16A/3500W. Genoeg dus om het stroomverbruik van de wasmachine of wasdroger te meten.

    Zodra je de Shelly 1PM hebt gemonteerd en hebt geactiveerd is het tijd om hem in Domoticz te installeren. Hiervoor maken we gebruik van MQTT, wat staat voor Message Queue Telemetry Transport. Indien MQTT al is geïnstalleerd op je Raspberry Pi kun je de eerste @ stappen overslaan.

    1. Update de Raspberry Pi naar de laatste versie via de terminal

    sudo apt-get update

    sudo apt-get upgrade

    2. Installeer Mosquitto

    sudo apt-get install mosquitto mosquitto-clients

    3. Installeer Python 3.5

    cd domoticz/plugins
    git clone https://github.com/enesbcs/Shelly_MQTT.git

    4. Herstart de Raspberry Pi

    sudo reboot

    5. Open Domoticz via de browser

    Ga naar http://domoticz-ip:8080

    6. Open de Hardware interface

    Ga in het menu naar Instellingen  Hardware om nieuwe hardware toe te voegen aan Domoticz.

    7. Voeg nieuwe hardware toe

    Voeg nieuwe hardware toe en neem onderstaande instellingen over.

    Instellingen MQTT Client Gateway LAN interface

    Naam: Geef de hardware een herkenbare naam. Bijvoorbeeld MQTT.
    Remote address: Vul het IP-adres van Domoticz in. Bijvoorbeeld 192.168.178.29
    Gebruikersnaam: Vul een gebruikersnaam in.
    Wachtwoord: Vul een wachtwoord in.
    Publish Topic: Stel in op Flat.

    8. Voeg Shelly MQTT hardware toe

    Selecteer Shelly MQTT uit de Hardwarelijst en neem onderstaande gegevens over.

    Instellingen Shelly MQTT

    MQTT Server address: Vul het IP-adres in van Domoticz (zie stap 7).

    Vul de gebruikersnaam en wachtwoord in welke je in stap 7 hebt ingevoerd.

    Om de Shelly 1PM schakelaar weer te geven bij Apparaten dienen we in de instellingen van de schakelaar nog wat aan te passen.

    9. Instellen MQTT in Shelly 1PM

    Ga naar http://IP-adres van je Shelly 1PM

    Klik vervolgens op Internet & Securety en ga naar ADVANCED-DEVELOPER SETTINGS en neem de onderstaande gegevens over.

    MQTT instellen op Shelly 1PM
    MQTT instellen op Shelly 1PM

    Vul de gebruikersnaamwachtwoord en server in welke je in stap 7 hebt ingevoerd.

    Klik op SAVE om de wijzigingen op te slaan.

    Als het goed is krijg je nu de Shelly 1PM te zien onder Apparaten in Domoticz. Zie je de schakelaar nog niet verschijnen in Domoticz, reboot dan voor de zekerheid nog een keer de Pi.


  • MQTT Broker installeren op de Rapsberry Pi

    http://www.sigmdel.ca/michel/ha/ha_add_mqtt_en.html

    Since the Raspberry Pi hosting the home automation software will always be on, it makes sense that it should host the MQTT broker. One of the best known Open source MQTT broker is Mosquitto which is what I installed following the instructions found on that site.

    Lees verder  Bericht ID 5410


  • Domoticz installeren op Linux Mint of Ubuntu

    Domoticz is natuurlijk het meest ideaal op een Raspberry Pi, deze kan dag en nacht draaien met een heel laag stroomverbruik, heeft geen koeling nodig, is klein, maakt geen geluid en zo zijn er nog vele voordelen te verzinnen.

    Maar om deze ook op je desktop te installeren zijn ook wel wat redenen voor te verzinnen, testen, templates bouwen, enz.

    Op linux is dat simpel uit te voeren, er is geen .Deb bestand

    Open een terminal met bijvoorbeeld ‘putty’ en voer uit:

    curl -L https://install.domoticz.com | bash

    Binnen 5 minuten klaar…


    Of je kan deze ook handmatig compileren, dat is wat meer werk….. maar op onderstaande wijze is het in een half uurtje voor elkaar.

    Voer dan uit:

    sudo apt-get install build-essential -y
    sudo apt-get install libboost-dev libboost-thread-dev libboost-system-dev libsqlite3-dev subversion curl libcurl4-openssl-dev libusb-dev zlib1g-dev python3-dev
    sudo apt-get install cmake
    sudo apt-get install git
    git clone https://github.com/domoticz/domoticz.git domoticz
    cd domoticz
    git pull
    cmake -DCMAKE_BUILD_TYPE=Release .

    make

    Dit kan even duren, wacht rustig af, ik doe dat meestal met een kopje koffie en een sigaartje……


  • MQTT installeren en configureren in Domoticz

    De eerste pagina die we moeten volgen is Domoticz MQTT wiki.

    Log in op je Domoticz server, ik mijn geval een Raspberry Pi, en ik gebruik daarvoor Putty.
    We gaan eerst alles updaten en dan de volgende pakketten installeren: NPM, Node.js, Node RED en Mosquitto.
    sudo apt update

    sudo apt dist-upgrade

    sudo apt install npm cmake uuid-dev libwebsockets-dev libssl1.0.2

    apt-get install mosquitto mosquitto-clients

    sudo npm install npm@latest -g

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

    sudo apt install -y nodejs

    sudo npm install -g mqtt url request nodemon

    sudo npm install -g --unsafe-perm node-red

    sudo apt install mosquitto mosquitto-clients

    sudo npm install node-domoticz-mqtt
    Lees verder  Bericht ID 5410


  • Wunderground weerdata ophalen in Domoticz

    Zodra een account hebt en je api key is aangemaakt kun je testen of je deze data ook kunt ophalen. Voer uit in je terminal:

    Dit is de data van Weerstation Geertruidenberg http://wsgb.nl


    Voor een vliegveld in de buurt welke dus geen ‘PWS’ is gebruiken we deze opdrachtregel. Voer uit in je terminal:

    Dit is vliegbasis Gilze-Rijen

    Real-time solar data : azimuth, Altitude, Lux sensor… forum (https://www.domoticz.com/forum/viewtopic.php?t=10077&start=100)


  • Slimme meter uitlezen met je Raspberry Pi

    Geplaatst op door colani 1 Reactie

    Tegenwoordig heeft bijna iedereen een slimme meter in de meterkast. Met een Raspberry Pi, een kabeltje en software kun je gemakkelijk de gegevens uit de slimme meter ophalen, zodat je het stroom- en gasverbruik gedetailleerd in kaart kunt brengen. In dit artikel laten we zien hoe je dit kunt doen met de software P1 monitor en Domoticz.

    Iedereen een slimme meter

    Al ruim drie miljoen huishoudens hebben tegenwoordig een slimme meter. Die meet je stroomverbruik en geeft dit samen met de standen van de gasmeter door via het mobiele netwerk. Handig voor de energieleverancier en netbeheerder, die verbruiksgegevens kunnen uitlezen en inzicht krijgen in pieken of storingen op het energienet. Maar ook handig voor jou, omdat je meer inzicht kunt krijgen in je verbruik en bijvoorbeeld de teruggave van zonnepanelen. Behalve via een internetportaal van je energieleverancier of een onafhankelijke dienst kun je ook zelf via de datapoort op de slimme meter, de zogenaamde P1-poort, het verbruik bijhouden.

    Lees verder  Bericht ID 5410


  • Stroomkosten zichtbaar maken in Domoticz

    Het draaien van een paar servers kost iets meer energie dan een Raspberry PI zoals je ziet!

    In Domoticz is het simpel mogelijk om het stroomverbruik bij te houden als je een ‘slimme’ meter hebt. Je ziet dan het huidige verbruik in kW en de historie per dag, maand en jaar. Het zou handig of wenselijk zijn als je het verbruik in € ‘EURO’s’ zou kunnen zien. Hier  gaan we uitleggen hoe je eenvoudig het verbruik in geld = € kunt tonen met een Python-script.

    Je hebt je ‘Slimme Meter‘ of ‘Sonoff POW‘ al werkend in Domoticz gaan we even vanuit.

    In Domoticz bij: Instellingen > Apparaten Lees verder  Bericht ID 5410


  • Dagelijkse backup van Domoticz naar een externe harddisk 1

    Zodra je Domoticz heb geïnstalleerd wil je natuurlijk ook backups kunnen maken. Een dagelijkse backup van Domoticz maken kan eenvoudig via de ingebouwde functie. Deze backup wordt ieder uur, dag en maand automatisch weggeschreven naar de folder /home/pi/domoticz/backups/. Je hoeft hiervoor alleen maar Enable Automatic Backup aan te vinken. Echter, indien de geheugenkaart van de Raspberry Pi crasht kun je deze backups niet meer gebruiken en ben je alsnog het spreekwoordelijke haasje. In dit artikel gaan we in op verschillende backup scripts, allemaal met een eigen functie.

    Wat heb je nodig:

    Buiten je raspberry Pi heb je een externe schijf nodig, maar beter is een NAS.

    Als voorbereiding even het volgende:

    1. Zoek op je Network Attached Storage (NAS) of externe harddisk een folder waar je de backup van Domoticz wilt gaan opslaan.
    2. Zorg ervoor dat FTP ingeschakeld is en dat je de inloggegevens bij de hand hebt.
    3. Stel in Domoticz een gebruikersnaam en wachtwoord in (website protection) en stel Local Networks (no username/password) in.

    Lees verder  Bericht ID 5410


  • Speedtest op Raspberry Pi in Domoticz

    Een speedtest op je Raspberry PI onder Domoticz, dat is handig! Hier leggen we uit hoe je geheel automatisch je ping, download- en uploadsnelheid kunt loggen.

    Het script maakt gebruik van de Python module speedtest-cli om de internetsnelheid via speedtest.net te testen.

    Python module

    Allereerst gaan we de Python module speedtest-cli installeren via de terminal:

    sudo apt-get install speedtest-cli

    Virtuele sensoren

    Ga naar Instellingen > Hardware, scrol hier naar beneden en vul daar in:

    Speedtest, kies voor Dummy hardware en klik op toevoegen.

    Je hebt deze dummy hardware nu aangemaakt, klik nu in de regel “speedtest” op maak virtuele sensoren. Lees verder  Bericht ID 5410