Projektvorstellung: pmatic (Homematic + Python)

diverse Zusatzsoftware

Moderator: Co-Administratoren

Toni999
Beiträge: 91
Registriert: 13.12.2015, 17:52
Hat sich bedankt: 3 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 28.11.2018, 22:17

moin,

@Hawkeye1 zur Frage
Wenn ich an der CCU2 KEINE zusätzlichen Add Ons installiere - kann ich mit Hilfe von pmatic (auf dem Raspberry!!!) wie oben geschildert auch über LAN eine CCU steuern?
.
Ja, sollte funktionieren. Von einem echten externen Rechner (Windoof-PC) habe ich es mal vor ein/zwei Jahren probiert (hat funktioniert), ich setze es aber auf zwei Raspis mit virtueller CCU (YAHM und pivccu) ein, insb. zur Ansteuerung von Display und LEDs bzw. Lampen und Rolläden. Tests mit pivccu3 folgen wohl nächsten Monat.

Ich gehe aber auch davon aus, dass vom Autor her hier wohl nicht mehr viel passiert. Ich werde es allerdings - soweit ich kann - für mich weiterführen, da mir persönlich (zumindest derzeit) die Programmierung mit Python lieber ist als die Flows samt Umgebung.

@kurtklaiber: Falls noch Programmbeispiele gewünscht sind, bitte melden.

Viele Grüße

kurtklaiber
Beiträge: 13
Registriert: 27.03.2018, 11:09

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von kurtklaiber » 04.12.2018, 13:05

JA, diese Programmbeispiele würden mich brennend interessieren.

Toni999
Beiträge: 91
Registriert: 13.12.2015, 17:52
Hat sich bedankt: 3 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 07.12.2018, 20:51

Moin,

ich werde morgen einige einstellen. Zumindest läuft es wohl auch mit der ccu3 (pivccu3).

Viele Grüße ...

Toni999
Beiträge: 91
Registriert: 13.12.2015, 17:52
Hat sich bedankt: 3 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 07.12.2018, 22:26

Moin,

doch noch heute (Beispielcode):

Code: Alles auswählen

#!/usr/bin/env python
# encoding: utf-8
#
# Beispiele, die allerdings ohne die entsprechenden Geräte/Variablen nicht funktionieren!
# ohne Gewähr für Richtigkeit etc.
# (angepasst auf die Standard pmatic - Bibliothek)
#


from __future__ import print_function

import sys
sys.path.append("/opt/pmatic/module_py")
import pmatic.api

# Anmeldung --------------------------------------------------------------------
API = pmatic.api.init(
    address="http://<IP-Adresse",
    credentials=("<User>", "<Passwort>"),
    connect_timeout=3,
)

# Methoden auflisten ---------------------------------------------------------
API.print_methods()

# Devices auflisten ------------------------------------------------------------
try:
  devices = API.device_list_all_detail()
except:
  pass
#devices = API.device_list_all()

line_fmt = "%-30s %s"

# Print the header
print(line_fmt % ("Name", "State"))
print(line_fmt % ("-" * 30, "-" * 6))

# Loop all devices, only care about shutter contacts
for device in devices:
    print (device["name"], device["type"], device["address"])
    for c in device["channels"]:
        print (device["name"], c["channelType"], c["deviceId"])

# Devices auflisten Ende -------------------------------------------------------


# Systemvariable auslesen/Setzen ------------------------------------------------------
try:
  print ("svb_Test_sv: ", API.sys_var_get_value_by_name(name="svb_Test_sv"))
  API.sys_var_set_bool(name="svb_Test_sv", value="0")
  print ("svb_Test_sv: ", API.sys_var_get_value_by_name(name="svb_Test_sv"))
  API.sys_var_set_bool(name="svb_Test_sv", value="1")
  print ("svb_Test_sv: ", API.sys_var_get_value_by_name(name="svb_Test_sv"))
except Exception, err:
  print ("svb_Test_sv_Fehler:", Exception, err)
# Achtung, zum Setzen bei anderem Datentyp anderer Aufruf!


# Anzahl Servicemeldungen ------------------------------------------------------
try:
  svc_anz = API.interface_get_service_message_count(interface="BidCos-RF")
  print ("Svc_Anz:", svc_anz)
except Exception, err:
  print ("Svc_Anz_Fehler:", Exception, err)

# Lichtsensor ------------------------------------------------------------------
try:
  Lichtsensor_Wert = float(API.channel_get_value(id="Lichtsensor:1"))
  print ("Lichtsensor:", Lichtsensor_Wert)
except Exception, err:
  print ("Lichtsensor_Fehler:", Exception, err)

# 8Kanal Empfänger (Typ: HM-MOD-Re-8, SN:<SN>, Name:Test_Receiver)
try:
  Schalter01 = API.channel_get_value(id="Test_Receiver:1")
  print ("Schalter01a:", Schalter01)
  Ergebnis=API.interface_set_value(interface="BidCos-RF", address="<SN>:1", valueKey="STATE", type="bool", value="true")
  Schalter01 = API.channel_get_value(id="Test_Receiver:1")
  print ("Schalter01b:", Schalter01)
except Exception, err:
  print ("Schalter01_Fehler:", Exception, err)


# Rollladen/Markise (Typ: HM-LC-Bl1PBU-FM, SN: <SN>, Name: Rollladen)------
try:
  rollostand = float(API.channel_get_value(id="Rollladen:1"))
  print ("Rollladen: ",rollostand)
  Ergebnis=API.interface_set_value(interface="BidCos-RF", address="<SN>:1", valueKey="LEVEL", type="string", value="1.0")
except Exception, err:
  print ("Rollladen_Fehler:", Exception, err)


# Lampe (Typ: HM-LC-Sw1-Pl-DN-R1, SN: <SN>, Name=Lampe) ------------------------
try:
  lampe_anaus = API.channel_get_value(id="Lampe:1")
  print ("Lampe: ",lampe_anaus)
  Ergebnis=API.interface_set_value(interface="BidCos-RF", address="<SN>:1", valueKey="STATE", type="bool", value="true")
except Exception, err:
  print ("Lampe_Fehler:", Exception, err)


API.close

Auf der CCU (org, YAHM, piVCCU, piVCCU3) braucht nichts installiert zu werden.
piVCCu3 funktioniert bisher auch; Tests gehen aber noch weiter.

Viel Spaß beim Testen ....

Toni999
Beiträge: 91
Registriert: 13.12.2015, 17:52
Hat sich bedankt: 3 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 08.12.2018, 12:50

moin,

@Hawkeye1:

Zugriff via LAN funktioniert (Windoof-PC mit Python auf Raspi mit piVCCU3).
In der Anmeldung muss die passende IP-Adresse (bei mir die vom Raspi) eingetragen sein (samt korrektem Benutzername und Passwort).

Viel Spaß beim Testen.

kurtklaiber
Beiträge: 13
Registriert: 27.03.2018, 11:09

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von kurtklaiber » 09.12.2018, 07:32

Hast Du ein einfaches Beispiel, wie ich über den Rolladenaktor einen Rolladen bewegen kann?

Toni999
Beiträge: 91
Registriert: 13.12.2015, 17:52
Hat sich bedankt: 3 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 09.12.2018, 11:27

Moin,

sollte prinzipiell wie folgt funktionieren:

Code: Alles auswählen

#Rollladen/Markise (Typ: HM-LC-Bl1PBU-FM, SN: <SN>, Name: Rollladen)------
try:
  rollostand = float(API.channel_get_value(id="Rollladen:1"))
  if rollostand == 1.0:
      Rollladen_zuauf = "auf"
  elif rollostand == 0.0:
      Rollladen_zuauf = "zu"
  elif 0.0 < rollostand < 1.0:
      Rollladen_zuauf = "halb"
  print ("Rollladen: ",rollostand, Rollladen_zuauf)
  #Rollladen auf/hoch:
  Ergebnis=API.interface_set_value(interface="BidCos-RF", address="<SN>:1", valueKey="LEVEL", type="string", value="1.0")
  time.sleep(30)
  #Rollladen zu/runter:
  Ergebnis=API.interface_set_value(interface="BidCos-RF", address="<SN>:1", valueKey="LEVEL", type="string", value="0.0")
except Exception, err:
  print ("Rollladen_Fehler:", Exception, err)
Konkret kann ich es erst wieder ab Freitag testen. Wie es beim HMIP-BROLL aussieht, kann ich daher im Moment auch nicht sagen.

Viel Spaß beim Testen ...

linuxubuntu
Beiträge: 1
Registriert: 04.01.2019, 12:26

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von linuxubuntu » 04.01.2019, 13:20

Hallo Zusammen

Ich bn neu hier im Forum und wollte auf meine bestehende Datenbank zwei Komi Temp. und Feuchtesensoren (HmIP-STH) integrieren. Dazu habe ich folgende Fragen.

Grundlage zu den Fragen:
Daten mit python auf eine postgres DB einlesen. Die Werte sollen jede Minute durch das python script abgefragt werden.

Fragen:
- Was benötige ich an Hardware nebst dem temp. und feuchtesensor (HmIP-STH)?
- kann das sendeintervall verändert werden zum bsp. Minutenwerte oder alle 30s?
-benötige ich eine CCU3 oder kann durch python der sensor direkt angesprochen werden?

Danke für die Rückmeldung

Toni999
Beiträge: 91
Registriert: 13.12.2015, 17:52
Hat sich bedankt: 3 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 08.01.2019, 20:34

Moin moin,

ich versuch's mal zu beantworten:
zu 1.: eine CCu2/3 oder HmIP-Access-Point; alternativ Raspi (mit passendem Funkmodul) mit raspberian und z.b. piVCCU
zu 2.: soweit mir bekannt, kann das Sendeintervall wohl nicht unter 3min. gesetzt werden. Gründe hierfür sich z.B. Stromverbrauch (->Batterie) sowie u.a. gesetzliche Vorgaben (->Duty Cycle) (Anmerkung: habe es nicht berechnet, was danach möglich wäre)
zu 3.: nichts ist unmöglich, wenn keine (echte) CCU, dann vielleicht Raspi (mit passendem Funkmodul) mit raspberian und z.b. piVCCU.
Die mir bekannten hier Python-Möglichkeiten setzen derzeit immer ein vorhandenes API der CCU (z.B. pmatic) oder des HmIP-Access-Points (z.B. https://github.com/coreGreenberet/homematicip-rest-api) voraus.

Viel Spaß beim Testen ....

Tutmanichtun
Beiträge: 1
Registriert: 14.04.2019, 14:22

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Tutmanichtun » 14.04.2019, 15:06

Hi zusammen,

ich habe dieses spannende Projekt gefunden, weil ich das eine elektrische Rollo in meiner Wohnung gerne in mein HomeMatic-System einbinden möchte. Velux funkt zwar auch im 868 MHz-Band, verwendet aber ein anderes Protokoll. Daher mein Plan: Fernbedienung öffnen und die drei Schaltkontakte mit GPIOs des Raspberrys meiner HomeMatic-Zentrale verbinden.
Dazu habe ich mir im WebUI eine Systemvariable für den Soll-Zustand des Rollos angelegt. Für die Umsetzung auf die GPIOs bastele ich gerade ein Python-Skript zusammen. Was mir jetzt aber noch fehlt ist eine Idee, wie ich die Auslösebedingung des Skripts definiere. So wie ich das sehe, kann ich nur Geräte, Systemstart, Uhrzeiten... als Startbedingung definieren. Ich möchte das Rollo aber nicht nur per Wandtaster, sondern eben auch automatisch schließen können. Systemvariablen stehen aber nicht zur Option, und das Skript alle 2 Sekunden zu triggern find ich auch nicht wirklich prickelnd.
Hat jemand eine Idee?

Gruß
Tutmanichtun

Antworten

Zurück zu „Sonstige Addons“