CCU3 / Skripte / FHEM-Integration

Begonnen von fgam, 27 Dezember 2021, 14:31:47

Vorheriges Thema - Nächstes Thema

fgam

Hallo!
Ich arbeite mit einem Raspberry und
der piVCCU (https://github.com/alexreinert/piVCCU).

Und ich habe es auf dieser Basis hinbekommen, erste kleine
Skripte in der CCU3-Oberfläche zu testen.

Der nächste Schritt wäre, eine Web-Seite anzulegen,
mit der die Skripte aufgerufen werden könnten.
Also eine Art Oberfläche/Framekwork, das CCU3-Skripte
aufrufen (und idealerweise auch Einstellmöglichkeiten hat:
typische Anwendung wäre, eine Gruppe von Thermostaten
auf einen in der Oberfläche definierten Wert zu stellen).

Gibt es dafür ein Tutorial? Hat jemand das schon probiert
und kann ein Framework/Tool dafür empfehlen, das auf
FHEM aufsetzt (oder vielleicht sogar direkt mit  der
CCU3 korrespondiert)?

Die Frage wäre dabei auch, ob die Skriptsprache, die
CCU3 anbietet, auch in FHEM integriert werden kann?






Ryker

#1
Das machst du einfach übers HMCCU-Modul (https://wiki.fhem.de/wiki/HMCCU)
set <dein_hmccu_device> hmscript <dein_ccu_script>

Aber viel einfacher ist es deine von der CCU in FHEM rein geholten Homematic-Geräte direkt im FHEM anzutriggern. Baust dir ein paar Dummies mit den Schaltern oder Slidern oder Dropdowns oder was auch immer, dann ein Notify, was die gewünschten Aktionen ausführt.

Ryker

fgam

Ah, das klingt einfach. Danke!

Beim Ausprobieren des Skriptes
hat sich anscheinend noch ein Problem gezeigt:

"HMCCU: d_ccu Start of RPC server failed"

Ich versuche, die CCU3 als Gerät mit FHEM anzusprechen
(also keinen Stick oder ein HM-MOD-RPI-PCB, sondern die CCU3-Box).
Ich dachte, die hätte einen RPC-Server.



fgam

Wenn ich das Skript aus de Dokumentation aufrufe mit:

  set d_ccu hmscript /opt/fhem/sysvars.scr


passiert erstmal nichts. Vielleicht hat es mit dem RPC-Server ja zu tun.


Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

#5
Ja, habe ich mir angeschaut.

Beim Blickin die Logdatei bin ich noch auf ein Problem gestoßen:
Zitat
CUL: Can't open /dev/ttyS0: Permission denied

Dann habe ich die Rechte händisch geändert und neu gestartet.
mir ist nicht klar, wofür die serielle Schnittstelle gebraucht wird,
da ich ja eigentlich die externe CCU3-Box als HMCCU definiert habe).

Die Fehlermeldung ist jetzt weg, allerdings eine andere noch da:
Zitat
2021.12.28 08:38:10 1: HMCCU [d_ccu] CCU port 8181 is reachable
2021.12.28 08:38:10 1: HMCCU [d_ccu] Initialized version 5.0 213491649
2021.12.28 08:38:10 1: HMCCU [d_ccu] Initializing device
2021.12.28 08:38:10 2: HMCCU [d_ccu] Deleting old CCU configuration data
2021.12.28 08:38:10 1: HMCCU [d_ccu] Found no interfaces on CCU
2021.12.28 08:38:10 1: HMCCU [d_ccu] No RPC interfaces found on CCU 192.168.178.46

In der Anleitung steht:
Zitat
Im nächsten Schritt wird der RPC-Server konfiguriert und gestartet. Zunächst werden mit dem Attribut rpcinterfaces die Schnittstellen bzw. Ports festgelegt, für die sich der RPC-Server bei der CCU registrieren soll. Das Attribut zeigt in einer Auswahlliste die möglichen Schnittstellen an

Bei mir zeigt das Attribut keine Auswahlliste an, sondern nur ein Eingabefeld.
Die HMCCU schreibt:
Zitat
CCUNum 1
Clients :HMCCUDEV:HMCCUCHN:HMCCURPCPROC:
DEF    192.168.178.46
FUUID 61bf8d65-f33f-1edd-a58b-b04e88b7a173800b
NAME d_ccu
NOTIFYDEV global
NR 14
NTFY_ORDER 50-d_ccu
RPCState inactive
STATE inactive/Error
TYPE HMCCU
ccuip 192.168.178.46
ccustate  active
ccutype CCU2/3
config 5.0
host 192.168.178.46
prot http
version 5.0 213491649




Otto123

Moin,

dann hat dein Modul HMCCU keine richtige Verbindung zur CCU.
Du hast die Firewall der CCU entsprechend "frei" konfiguriert?

Wenn HMCCU die CCU "lesen" kann, wird auch die Auswahlbox gefüllt.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ryker

/dev/ttyS0 hat mit HMCCU nichts zu tun .

In der CCU musst du eigentlich nur in der Firewall die API Zugriffe erlauben, indem du dort "eingeschränkt" oder "vollzugriff" einstellst. Wenn du auch noch CUxD dort laufen hast, dann musst du auch die Firewall Richtline auf "Ports offen" einstellen.

Wenn dann der HMCCU RPC funktioniert, dann kannst du dir auch mit "get d_ccu createDev" deine Homematic- Geräte im FHEM anlegen und braucht dann die CCU nur noch als IO-Device.


Ryker

Otto123

Zitat von: fgam am 28 Dezember 2021, 09:47:06
Beim Blickin die Logdatei bin ich noch auf ein Problem gestoßen:
Ich würde attr initialUsbCheck disable 1 setzen und dann save machen, kann sein dann ist der Fehler verschwunden (falls er beim Systemstart auftritt). Klingt mir zumindest so.
Rechte händisch ohne wirklichen Grund ändern ist da eher kontraproduktiv (aber vielleicht auch egal)
Ansonsten wie Ryker sagt: andere Baustelle.

ich hatte bei API Vollzugriff eingestellt, mit eingeschränkt kam es genau zu dem Verhalten (wenn ich mich richtig erinnere)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

Zitat
ich hatte bei API Vollzugriff eingestellt, mit eingeschränkt kam es genau zu dem Verhalten (wenn ich mich richtig erinnere)

Das verstehe ich nicht:  Was bedeutet API in diesem Zusammenhang, und wie/wo stelle ich den Vollzugriff ein?

Danke für den disable-Befehl, das probiere ich.

Bei den Ports hatte ich 8181 eingestellt.
Vorher gab es einen Fehlermeldung
Zitat
  HMCCU [d_ccu] CCU port 8181 is not reachable

Die war danach weg.

Ich bin allerdings nicht sicher, ob ich weitere Ports freigeben muss.
Ist 8083 auch erforderlich?
Oder weitere IP-Adressen?


Otto123

Zitat von: fgam am 28 Dezember 2021, 11:34:50
Das verstehe ich nicht:  Was bedeutet API in diesem Zusammenhang, und wie/wo stelle ich den Vollzugriff ein?
Steht doch hier? https://wiki.fhem.de/wiki/HMCCU#CCU_Firewall_Einstellungen
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

Zitat
andernfalls müssen die notwendigen Ports im Feld "Port-Freigabe" explizit angegeben werden

8181 hatte ich ja schon angegeben,
8083 habe ich auch noch hinzugefügt.
Die IP der FHEM habe ich auch hinzugefügt.

Könnte sonst noch was fehlen?
Wie finde ich denn noch heraus, welches die notwendigen Ports sind?
Eine Fehlermeldung kommt ja nicht mehr.



fgam

#12
Ich habe "Ports offen" bei den CCU3-Firewall-Einstellungen gesetzt (schon von Anfang an).
Das heißt, wenn ich es richtig lese, dass ich gar keine Ports explizit angeben muss.
Insofern sollte das ja schon funktionieren.

Logfile schreibt aber:

2021.12.28 12:18:13 1: HMCCU [d_ccu] HMCCU: d_ccu Start of RPC server failed

Habe gerade nohcmal CCU3 und Raspberry komplett neu gestartet:
Problem besteht weiter. RPC server failed.

Es liegt also nicht an den Freigaben.


Otto123

#13
Mal schauen ob es nach Silvester besser wird  :'( Anstatt einem 4. Verweis aufs Wiki mal ein Zitat
ZitatCCU Firewall Einstellungen
Ab CCU Firmware 2.27.7 sind auf der CCU über das WebGUI folgende Einstellungen vorzunehmen:

Menü "Einstellungen > Systemsteuerung" aufrufen
Button "Firewall konfigurieren" anklicken
Bei "Firewall-Richtlinie" den Eintrag "Ports offen" auswählen, andernfalls müssen die notwendigen Ports im Feld "Port-Freigabe" explizit angegeben werden
Die Rechte für "HomeMatic XML-RPC API" und "Remote HomeMatic-Script API" auf "Vollzugriff" setzen.
Man kann die Rechte auf "Eingeschränkter Zugriff" belassen, muss dann aber im Feld "IP-Adressen für eingeschränkten Zugriff" die IP des FHEM-Servers oder das komplette Subnetz in Subnet-Notation angeben.
Wenn der Zugriff von FHEM auf die CCU ohne Anmeldung erfolgen soll, muss zusätzlich in der Systemsteuerung unter "Sicherheit" die Option "Authentifizierung" deaktiviert werden. Alternativ kann im I/O Device (HMCCU) mit dem Befehl set authentication Benutzername und Passwort der CCU angegeben werden.

Nach einem grundlegenden Erfolgserlebnis kannst Du doch gerne alles soweit zuziehen wie Du denkst - also so würde ich meine Zeit verbringen ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fgam

Danke, aber auf dieses Zitat habe ich mich vorher auch schon bezogen.

Die Ports stehen auf offen,

>>Die Rechte für "HomeMatic XML-RPC API" und "Remote HomeMatic-Script API" auf "Vollzugriff" setzen.
das ist auch schon passiert.

Alles leider ohne Erfolgserlebnis.