Setzen der Solltemperatur mit python über Rest-API Schnittstelle

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
#Geri#
Beiträge: 6
Registriert: 21.10.2020, 09:13
System: Access Point

Setzen der Solltemperatur mit python über Rest-API Schnittstelle

Beitrag von #Geri# » 18.11.2020, 14:22

Hallo,
nachdem ich absoluter Neuling auf dem Gebiet python bin, wende ich mich an die Profis um einen Codeschnipsel-Tipp zu bekommen.
Ich habe einige Heizkörper-Thermostate von Homematic, die über einen Access-Point laufen. Keine CCU
Hierzu habe ich bereits einen Beitrag geschrieben und mein erstes Erfolgs-Erlebnis gehabt
(Thema in "HomeMatic IP mit Access Point" - "Aktuelle Ventil-Temperatur mit VBA oder VB6 auslesen")
Hierbei hab ich python auf einem Win10-Rechner und Visual Studio 2019 installiert.
Dann das homematicip package mit "pip3 install homematicip" installiert.
Dann hab ich mir von github folgendes Beispiel runtergeladen
https://github.com/coreGreenberet/homematicip-samples
und mit Visual Studio etwas angepasst um alle 60 Sekunden die aktuelle Soll-Temperatur auslesen zu können und in eine Datei zu speichern.
Woran ich jetzt scheitere ist das Schreiben der Solltemperatur. Kann mir jemand einen Code-Schnipsel in python zukommen lassen?
Danke schon mal. LG Geri

Hier der Code, der bisher funktioniert:

import homematicip
import time
import datetime
import time

from homematicip.home import Home
from homematicip.device import ShutterContact,HeatingThermostat,PlugableSwitchMeasuring,WallMountedThermostatPro

config = homematicip.find_and_load_config_file()

home = Home()
home.set_auth_token(config.auth_token)
home.init(config.access_point)

def write_shutter(room,device):
print(room, " ", device.label, " ", device.lastStatusUpdate, " ", device.windowState)
#print(device)

def write_plugableswitchmeasuring(room,device):
print(room, " ", device.label, " ", device.lastStatusUpdate, " ", device.currentPowerConsumption, " ", device.energyCounter)

def write_heatingthermostat(room,device):
print(device.valveActualTemperature, " ", device.setPointTemperature, " ", device.valvePosition, " ", room, " ", device.label, " ", device.lastStatusUpdate)

def write_wallmountedthermostatpro(room,device):
print(room, " ", device.label, " ", device.lastStatusUpdate, " ", device.actualTemperature, " ", device.setPointTemperature, " ", device.humidity)

def main():
while True:
global home
home.get_current_state()
print("====== ", time.strftime("%d.%m.%Y %H:%M:%S"), " ======")
print("File open")
file = open("C:\_MESSWERT_TRANSFER_\HM_Temperaturen.txt","w")
for g in home.groups:
if g.groupType=="META":
for d in g.devices:
if isinstance(d,ShutterContact):
write_shutter(g.label,d)
elif isinstance(d,HeatingThermostat):
write_heatingthermostat(g.label,d)
file.write(str(g.label) + " - " + str(d.label) + "\n")
file.write(str(d.valveActualTemperature) + " ")
file.write(str(d.setPointTemperature) + " ")
file.write(str(d.valvePosition) + "\n")
elif isinstance(d,PlugableSwitchMeasuring):
write_plugableswitchmeasuring(g.label,d)
elif isinstance(d,WallMountedThermostatPro):
write_wallmountedthermostatpro(g.label,d)
file.close()
print("File close")
time.sleep(60)

if __name__ == "__main__":
main()

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“