Projektvorstellung: pmatic (Homematic + Python)

diverse Zusatzsoftware

Moderator: Co-Administratoren

Benutzeravatar
jmaus
Beiträge: 9817
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 Mal
Kontaktdaten:

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von jmaus » 10.04.2016, 16:59

LaMi hat geschrieben:
python -c "import platform; print(platform.uname())" bringt folgendes:
('Linux', 'homematic-ccu2', '3.4.106-cubieboard', '#2 SMP PREEMPT Tue Feb 17 06:16:56 CET 2015', 'armv7l', '')
Habe ich mir gedacht. Anhand der Daten kann pmatic nicht vernünftig entscheiden, dass es sich hierbei um eine "CCU" handelt. Eventuell müssten wir für die Erkennung noch andere Angaben, als uname benutzen. Man könnte z.B. gucken ob eine CCU spezifische Datei vorhanden ist, z.b. /bin/ReGaHss. Die Datei müsste ja bei dir auch da sein, oder?
Auch wenn das prüfen nach /bin/ReGaHss sicher möglich wäre würde ich dir lieber empfehlen nach /etc/os-release zu testen und dort zu schauen ob z.B. NAME=Buildroot dort drin steht. Diese Datei sollte auf jeder CCU version verfügbar sein und daher gut geeignet dafür sein zu prüfen ob es sich bei dem System um eine CCU handelt. Hier einmal ein Beispiel für eine solche Datei unter RaspberryMatic:

Code: Alles auswählen

NAME=Buildroot
VERSION=2015.08.1
ID=buildroot
VERSION_ID=2015.08.1
PRETTY_NAME="Buildroot 2015.08.1"
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

LaMi
Beiträge: 16
Registriert: 09.02.2016, 20:00

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von LaMi » 10.04.2016, 21:14

Auch wenn das prüfen nach /bin/ReGaHss sicher möglich wäre würde ich dir lieber empfehlen nach /etc/os-release zu testen und dort zu schauen ob z.B. NAME=Buildroot dort drin steht. Diese Datei sollte auf jeder CCU version verfügbar sein und daher gut geeignet dafür sein zu prüfen ob es sich bei dem System um eine CCU handelt. Hier einmal ein Beispiel für eine solche Datei unter RaspberryMatic:
Ah, sehr gut! Ich hatte gar nicht damit gerechnet, dass unter der CCU so eine Datei vorhanden ist. Natürlich ist die Datei um Welten besser geeignet, auch wenn die Angabe "Buildroot" etwas seltsam ist.

Danke für den Tipp. Werde das gleich ergänzen.

Benutzeravatar
jmaus
Beiträge: 9817
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 Mal
Kontaktdaten:

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von jmaus » 11.04.2016, 00:10

LaMi hat geschrieben:
Auch wenn das prüfen nach /bin/ReGaHss sicher möglich wäre würde ich dir lieber empfehlen nach /etc/os-release zu testen und dort zu schauen ob z.B. NAME=Buildroot dort drin steht. Diese Datei sollte auf jeder CCU version verfügbar sein und daher gut geeignet dafür sein zu prüfen ob es sich bei dem System um eine CCU handelt. Hier einmal ein Beispiel für eine solche Datei unter RaspberryMatic:
Ah, sehr gut! Ich hatte gar nicht damit gerechnet, dass unter der CCU so eine Datei vorhanden ist. Natürlich ist die Datei um Welten besser geeignet, auch wenn die Angabe "Buildroot" etwas seltsam ist.
Das ist nicht seltsam sondern dem geschuldet das die CCU auf der Linux-basierten Buildroot Distribution basiert (https://buildroot.org).
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

LaMi
Beiträge: 16
Registriert: 09.02.2016, 20:00

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von LaMi » 12.04.2016, 22:58

Das ist nicht seltsam sondern dem geschuldet das die CCU auf der Linux-basierten Buildroot Distribution basiert (https://buildroot.org).
Schön und gut. Ich hätte dem Kind halt einen eigenen Namen gegeben und das in die os-release-Datei geschrieben. Das würde, wie wir sehen, doch so einige Vorteile mit sich bringen.

MartinF
Beiträge: 6
Registriert: 02.03.2015, 00:13

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von MartinF » 18.06.2016, 03:16

Ich versuche gerade eine Orvibo S20 WLAN Steckdose über ein (virtuelles) CUxD Gerät mit einem Python Skript zu steuern.

Nun habe ich ein Problem mit dem Python Skript zusammen mit CUxD.
Das Python Skript steuert die Steckdose und funktioniert manuell per SSH auf der CCU2 ausgeführt problemlos. Dieses Python Skript wird aus dem folgenden Shell Skript heraus mit Parametern aufgerufen:

Code: Alles auswählen

#!/usr/bin/env sh
/usr/local/bin/python /etc/config/addons/pmatic/scripts/S20control.py poweron 192.168.1.253 AC:CF:23:12:34:56
Wenn ich dieses Skript nun in das CMD_SHORT Feld eines eines CUxD Aktors (hier: HM-LC-Sw1-Pl, Funk-Schaltaktor 1-fach, Zwischenstecker) eintrage und auslöse steht im CUxD Log:

Code: Alles auswählen

Jun 18 01:46:40 homematic-ccu2 daemon.debug cuxd[26477]: CUX2801002:1 /usr/local/etc/config/addons/pmatic/scripts/orvibo_on.sh
Jun 18 01:46:40 homematic-ccu2 daemon.info cuxd[26477]: system(/usr/local/etc/config/addons/pmatic/scripts/orvibo_on.sh) exit(127) 0s
Der Exitcode 127 steht in der Bash für "command not found". Alle Skripte sind ausführbar.
Habt ihr eine Idee wie sich das lösen lässt bzw. weiter eingrenzen lässt?
Ist die Frage besser im CUxD Unterforum aufgehoben?

MartinF
Beiträge: 6
Registriert: 02.03.2015, 00:13

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von MartinF » 19.06.2016, 15:34

Okay, bin selber weitergekommen und das Problem auf pmatic-Seite identifiziert. :wink:
In /usr/local/bin/python wird ein Aufruf an python2.7 weitergereicht, das klappt allerdings nur, wenn python 2.7 auch im PATH liegt. Das ist offenbar beim Aufruf durch CUxD bzw. auch system.exec() nicht der Fall. Darum habe ich die Zeile:

Code: Alles auswählen

python2.7 "$@"
ersetzt durch:

Code: Alles auswählen

/etc/config/addons/pmatic/python/bin/python2.7 "$@"

skymaster1
Beiträge: 1
Registriert: 12.10.2015, 19:16

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von skymaster1 » 18.08.2016, 15:41

Hallo und vielen Dank an den Entwickler des Addon.

Leider bin ich nicht so fit in Python, habe aber folgendes Problem:
Ich lese mit einem Python-Script von hier https://github.com/datenschuft/SMA-EM die Werte eines "Sunny Energie Meter" aus.
Das funktioniert inzwischen auch ( ein paar Kleinigkeiten anpassen und die ConfigParser.py nachinstallieren).
Nur hätte ich die Zahlen gern in entsprechenden Systemvariablen oder (pseudo)Geräten.
Auf Grund meiner fehlenden Python-Kenntnisse bekomme ich aber auch die Idee von hier https://www.python-forum.de/viewtopic.p ... 53#p270546
nicht zum laufen.

Gibt es eine Möglichkeit in pmatic solche Werte in die CCU zu schreiben ?
Neben Systemvariablen habe ich auch an die EM1000-Sensoren gedacht die CUxD erzeugen kann.
Die werden zwar vom CUxD aktualisiert aber wenn es per pmatic ginge (und die Trigger auslösen könnte) wäre das auch prima.

Könnte mir jemand einen funktionsfähigen Rumpf zur Verfügung stellen ?
Ich würde dann die fertige Lösung hier posten, denn es gibt bestimmt ein paar Leute die ihre Daten lokal verarbeiten wollen ohne über die Sunny Webseite gehen zu müssen.

Gruß

FoxBob79
Beiträge: 13
Registriert: 06.09.2016, 12:34

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von FoxBob79 » 05.11.2016, 12:20

Einen wunderschönen guten Tag zusammen,

ich traue mich jetzt einfach mal eine wahrscheinlich ziemlich dumme Frage zu stellen und hoffe das Ihr einem Anfänger verzeiht! :-)

Ist es möglich so etwas wie einen "CCU-Core" aus den Quellen zu extrahieren und somit einen auf C und Python basierenden "Server" (in einem Linux Container) zu basteln und die Oberfläche als "Frontend/Client" dann über Python und HTML5 zu realisieren?? Soweit wie ich das bisher verstanden habe würde der "CCU-Core/Server" dann APIs zur Verfügung stellen an die dann Smartphone APPs oder eine Web-Frontend andocken würden.

Der Vorteil wäre das man die volle Unterstützung der Homematic Produkte hätte und Updates von eq3 dem "CCU-Core/Server" zu gute kämen man aber mit der Oberfläche losgelöst seine eigenen Ideen umsetzen könnte.

Ich denke das eine Lösung die auf C, Python und HTML5 (CSS,PHP) beruht auf einem Linux-System doch deutliche Vorteile hätte in Bezug auf Performance und Stabilität. Mir tut es immer weh wenn ich Java auf einem RaspberyPi installieren muss.

Verprügelt mich jetzt bitte nicht für diese Idee, aber ich fange gerade erst an mich mit dem Thema Programmieren zu beschäftigen!! ;-)

In diesem Sinne...

HeikoGr
Beiträge: 47
Registriert: 30.03.2016, 07:22
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von HeikoGr » 11.11.2016, 18:00

Hallo,
ich möchte mittels dieses Modules einige Daten (Version und Seriennummer) der CCU in einem eigenen Python Script auf dem Raspi verarbeiten.

Habe mir dazu eines der Beispiele anhand der Methodenübersicht wie folgt angepasst und testweise im pmatic Manager getestet:

Code: Alles auswählen

#!/usr/bin/env python
# encoding: utf-8
#
import pmatic.api

API = pmatic.api.init()

print(API.ccu_get_serial())
print(API.ccu_get_version())

API.close()
ccu_get_serial() liefert dabei ein leeres Ergebnis zurück.
ccu_get_version() läuft auf Fehler:

Code: Alles auswählen

couldn't read file "/www/api/methods/ccu/getversion.tcl": no such file or directory
Traceback (most recent call last):
  File "/etc/config/addons/pmatic/scripts/Serial.py", line 11, in <module>
    print(API.ccu_get_version())
  File "/usr/local/etc/config/addons/pmatic/python/lib/python2.7/pmatic/api.py", line 185, in <lambda>
    return lambda **kwargs: self._call(method_name_int, **kwargs)
  File "/usr/local/etc/config/addons/pmatic/python/lib/python2.7/pmatic/api.py", line 594, in _call
    return self._do_call(method_name_int, **kwargs)
  File "/usr/local/etc/config/addons/pmatic/python/lib/python2.7/pmatic/api.py", line 649, in _do_call
    body = response_txt.split("\n\n", 1)[1]
IndexError: list index out of range
Wie mir scheint, sind diese Funktionen nicht richtig implementiert oder wo liegt der Fehler?
VG Heiko

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

Re: Projektvorstellung: pmatic (Homematic + Python)

Beitrag von Toni999 » 11.02.2017, 11:58

Moin moin,

mir gefällt das Projekt gut, man kann alles schön über ein Pythonprogramm (außerhalb der HM/yahm) steuern (yahm auf Raspi). Ich nutze derzeit nur das API. An einigen Stellen bin ich noch am basteln, später vielleicht mehr dazu.

Viele Grüße ...

Antworten

Zurück zu „Sonstige Addons“