Neues Modul HMCCU für Homematic CCU

Begonnen von zap, 19 August 2015, 19:45:30

Vorheriges Thema - Nächstes Thema

redstar2003

Zitat von: zap am 11 Mai 2017, 16:34:38
Nein, das geht nicht. Das Modul ermöglicht den umgekehrten Weg: Geräte (u.a. Rollläden), die in die CCU eingebunden sind, können von FHEM aus gesteuert werden.

Allerdings ist das Steuern von FHEM Geräten aus der CCU heraus jetzt nicht so schwer. Alles was es braucht ist ein Shell-Script auf der CCU, das einen Befehl auf den Telnet Port von FHEM schickt (z.B. mit netcat). Dieses Script kann man aus der CCU z.B. mit einem CUxD Exec Device ausführen. Nicht schön, aber funktioniert.

Vielen Dank für die Antwort. Das reine Hoch- und Runterfahren habe ich schon per PHP-Skript und darin enthaltenem Shell-Skript gelöst. Mich interessiert aber mehr die Weiterentwicklung. Es gibt hier im Forum ja das Rollo-Modul, für mich wäre es interessant, wenn ich neben Hoch- und Runterfahren z.B. auch die aktuelle Position auslesen könnte oder das Rollo zu einer bestimmten Prozentzahl schließen könnte. Gibt es dafür irgendwie Möglichkeiten über den von dir beschriebenen Weg ?

zap

Die Kommunikationsrichtung ist mir jetzt nicht ganz klar.

Fall 1: Rollladen ist per Homematic Aktor in die CCU integriert

In diesem Fall kann in FHEM das Modul HMCCU verwendet werden, um den Rollladen in der CCU zu steuern. Gleichzeitig bekommt FHEM alle Statusinfos des Rollladen Aktors von der CCU geschickt. Auch die Position.

Fall 2: Rollladen ist in FHEM integriert (SOMFY or whatever)

Hier könnte man per Notify auf Veränderungen der Rollladenposition reagieren und diese mittels HMCCU z.B. in eine Systemvariable in der CCU schreiben
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

redstar2003

#1427
Ich bringe dann noch mal ein bisschen Licht ins Dunkle. :)
Ich habe meine Rolladen in FHEM (Rademacher Fernotron) integriert und steuere diese über das Rollo Modul. Mein Ziel wäre aber, die Rolladen in der CCU als (virtuelles) Device anzeigen zu lassen, mit dem ich nicht nur Hoch- und Runterfahren kann, sondern auch bestimmte Prozentzahlen anfahren kann und auch den aktuellen Stand der Rolladen auslesen kann. Vielleicht gibt es ja dazu eine getrickste Möglichkeit. :)
Bisher steuere ich die Rollos aus der CCU nur per PHP Skript, das einen Shell befehl ausführt.

zap

Das könnte mit Hilfe des CCU Addons CUxD funktionieren. Habe das gerade mal angetestet:

- in der CUxD Oberfläche auf "Geräte" gehen und dann links bei CUxD Gerätetyp "36 - Aktoren" auswählen. Unter Funktion "Jalousieaktor 1-4 Kanal" auswählen. Name angeben, das Symbol sowie die Anzahl der Kanäle. Dann Button "Gerät auf CCU erzeugen" anklicken.

- Im CCU WebUI auf Posteingang gehen und das neue virtuelle Gerät übernehmen.

- In FHEM HMCCU mit externem RPC-Server (nur der unterstützt CUxD) einrichten.

- FHEM Device mit HMCCUDEV für den Rollladen anlegen

- Ab jetzt kann das Device in der CCU angesprochen werden und der RPC-Server schickt Statusmeldungen.

Bei meinem Test habe ich ein Gerät "Rollo" auf der CCU angelegt. In FHEM über HMCCU kann ich von diesem Gerät folgende Datenpunkte auslesen:


CHN CUX3602001:0 Rollo:0
  DPT {n} CUxD.CUX3602001:0.RSSI_PEER = 0 [RE]
  DPT {b} CUxD.CUX3602001:0.UNREACH = false [RE]
  DPT {b} CUxD.CUX3602001:0.STICKY_UNREACH = true [RWE]
CHN CUX3602001:1 Rollo:1
  DPT {f} CUxD.CUX3602001:1.LEVEL = 0.000000 [RWE]
  DPT {b} CUxD.CUX3602001:1.STOP =  [W]
  DPT {f} CUxD.CUX3602001:1.RAMP_TIME =  [W]
  DPT {f} CUxD.CUX3602001:1.ON_TIME =  [W]
  DPT {b} CUxD.CUX3602001:1.WORKING = false [RE]
  DPT {i} CUxD.CUX3602001:1.DIRECTION = 0 [RE]
  DPT {b} CUxD.CUX3602001:1.INHIBIT = false [RW]


Man kann nun z.B. aus FHEM mit dem Befehl set datapoint 1.LEVEL eine Rollo-Position setzen. Wenn man in der CCU das virtuelle Device anklickt (z.B. Down) sollten die Readings in FHEM aktualisiert werden. Du könntest dann per Notify darauf reagieren und auf deine PHP Scripte verzichten.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

redstar2003

Vielen Dank schon mal. Das hört sich gut an. :)

Ich habe aber leider noch zwei Fragen. :(

1. Ich habe unter Clients im d_ccu dies stehen:  ":HMCCUDEV:HMCCUCHN:HMCCURPC:" Heißt das es läuft ein externer RPC-Server, oder wie kann ich einen einrichten ?
2. Ich habe die Rolladen ja schon in FHEM integriert, kann ich diese auch irgendwie mit einem HMCCUDEV-Device verbinden oder dem bestehenden Rolladen eine Erweiterung als HMCCUDEV geben ?


zap

Zitat von: redstar2003 am 12 Mai 2017, 14:46:19
1. Ich habe unter Clients im d_ccu dies stehen:  ":HMCCUDEV:HMCCUCHN:HMCCURPC:" Heißt das es läuft ein externer RPC-Server, oder wie kann ich einen einrichten ?
Siehe Abschnitt "Inbetriebnahme" unter https://wiki.fhem.de/wiki/HMCCU

Zitat
2. Ich habe die Rolladen ja schon in FHEM integriert, kann ich diese auch irgendwie mit einem HMCCUDEV-Device verbinden oder dem bestehenden Rolladen eine Erweiterung als HMCCUDEV geben ?

Nein, das geht nur über den Umweg CCU und virtuelles CUxD Device.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

redstar2003

Zitat von: zap am 12 Mai 2017, 15:23:07
Siehe Abschnitt "Inbetriebnahme" unter https://wiki.fhem.de/wiki/HMCCU

Nein, das geht nur über den Umweg CCU und virtuelles CUxD Device.

Zu 1.), danke. Hat funktioniert.

Zu 2.), Ich meinte eigentlich auf der FHEM selbst. Ich habe aktuell schon die Rollos angelegt, kann ich dann nicht sagen dieses Rollos ist auch ein HMCCUDEV ? Oder einfacher gesagt, wie kriege ich es hin, das mein bestehendes Rollo auch ein HMCCUDEV wird ?

Danke. :)

zap

Mit HMCCUDEV kann man nur CCU Geräte in FHEM ansprechen. Daher die Empfehlung, in der CCU quasi das Gegenstück zu deinem FHEM Rollo anzulegen, das dann wiederum per HMCCUDEV in FHEM angelegt wird.

Nun kannst Du per Notify dein Rollo Device mit dem HMCCUDEV Device und damit dem virtuellen Device in der CCU verknüpfen.

Konkret: wenn sich die Position deines Rollos ändert (also das Reading), setzt Du den Datenpunkt LEVEL im HMCCUDEV Device auf diesen Wert. Damit ändert er sich auch im virtuellen Device in der CCU.

Und umgekehrt: wenn du in der CCU das Level des virtuellen Device auf x% setzt, gibt die CCU diesen Wert an das HMCCUDEV Device weiter. Du setzt auf das entsprechende Reading ein Notify an und setzt dein FHEM Rollo Device auf den neue Wert.

Ergebnis: eine transparente Verknüpfung zwischen deinem Rollo in FHEM und der CCU.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

redstar2003

Okay, langsam verstehe auch ich wie es funktionieren soll. :)
Ich werde mich dann am Wochenende mal mit Notify auseinandersetzen. So wie ich die Wiki-Seite sehe, ist Notify ja wirklich mächtig. Tausend Dank aber schon mal für deine Hilfe (und Geduld ;) ).

Skjall

#1434
Moin,

auf das CCU-Log hätte ich auch selber mal kommen können.  :D
Das ist das letzte was er vor dem abschmieren des RPC-Servers von sich gibt:

May 12 03:00:39 homematic-ccu2 user.err rfd: XmlRpcClient error calling event({[methodName:"event",params:{"CB2001","MEQ1558169:4","CONTROL_MODE",1}],[methodName:"event",params:{"CB2001","MEQ1558169:4","FAULT_REPORTING",0}],[methodName:"event",params:{"CB2001","MEQ1558169:4"
May 12 03:00:39 homematic-ccu2 user.err rfd: XmlRpc transport error
May 12 03:00:39 homematic-ccu2 user.err rfd: XmlRpcClient error calling event({[methodName:"event",params:{"homebridge_BidCos-RF.","MEQ1558169:4","CONTROL_MODE",1}],[methodName:"event",params:{"homebridge_BidCos-RF.","MEQ1558169:4","FAULT_REPORTING",0}],[methodName:"event",p


Und so weiter...

In diesem Fall ist das berechtigt, weil die Firewall (die alle Zonen hält und u.a. das fhem von der CCU trennt) um 3 durchbootet. Das war ein workaround für ein Firmwareproblem das mittlerweile gelöst sein sollte. Insofern kann ich den reboot entfernen.

Reagiert das HMCCURPC Modul besser auf unterbrechungen?

VG Jan

zap

Da geben sich HMCCU und HMCCURPC nichts. Die lauschen ja nur auf Nachrichten der CCU. HMCCURPC verarbeitet diese nur deutlich schneller als HMCCU bzw. der Filequeue Mechanismus.

Das Problem ist die CCU. Die gibt relativ schnell auf, wenn der Partner (hier FHEM) nicht antwortet. Lässt sich nur beheben, wenn sich der Abnehmer neu bei der CCU registriert. Das passiert aber nur, wenn der RPC Server in FHEM gestartet wird.

Für das Problem gibt es keine einfache Lösung. Gleiches gilt für einen Neustart der CCU. Die vergisst dabei nämlich alle registrierten Abnehmer. Auch da muss man den RPC Server neu starten.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

redstar2003

Zitat von: redstar2003 am 12 Mai 2017, 18:35:36
Okay, langsam verstehe auch ich wie es funktionieren soll. :)
Ich werde mich dann am Wochenende mal mit Notify auseinandersetzen. So wie ich die Wiki-Seite sehe, ist Notify ja wirklich mächtig. Tausend Dank aber schon mal für deine Hilfe (und Geduld ;) ).

Hallo Zap,

leider bin ich nicht soweit gekommen. Notify schafft mich irgendwie und ich weiss nicht wie ich die Verknüpfung sauber hinkriege.
Mein Rollo in FHEM verfügt über das Reading "position", mit dem ich die richtige Position ansteuern kann. Mein HMMCCUDEV verfügt aber das Reading "1.LEVEL". Wie bekomme ich nun in Notify hin, das die richtige Position übergeben wird ? Anbei findest du auch einen Screenshot von Notify.

Vielen Dank :)

zap

Die Probleme mit Notify kann ich verstehen. Aber wenn Notify schlimm ist, schau Dir mal DOIF an. Davon lass ich auch die Finger weg. Dagegen ist Notify simpel.

Aber steck da mal nicht zu viel Arbeit rein. Habe gerade festgestellt, dass man in der CCU zwar ein virtuelles Jalousien Device mit CUxD anlegen und auch steuern kann (also hoch/runter usw.), aber leider aktualisiert CUxD die Datenpunkte nicht. Vielleicht habe ich es auch nicht richtig konfiguriert. Blöderweise ist das bei CUxD nicht dokumentiert.

Jedenfalls habe ich es nicht geschafft, dass die CCU Änderungen für das virtuelle Device an FHEM bzw. HMCU weiter gibt.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

redstar2003

Hm, das hört sich ja leider nicht so gut an. Bei mir wurden die Datenpunkte auch leider nicht aktualisiert. Andere Möglichkeiten/Tools (was macht der ioBroker genau?) gibt es für diese Art von Anforderung nicht ?

Vielen Dank aber trotzdem schon mal für deine Hilfe.

zap

Der iobroker macht das gleiche wie HMCCU. Er abonniert die Events der entsprechenden CCU Schnittstellen.
Das CUxD Jalousiendevice ist für Enocean gedacht. So losgelöst scheint das nicht zu funktionieren. Leider ist die Enocean Erweiterung kostenpflichtig. Sonst hätte ich da noch ein wenig mehr probiert.

Eine Möglichkeit: man verwendet 2 der 50 virtuellen Tasterkanäle der CCU für hoch und runter. Diese kann man per HMCCUCHN in FHEM anlegen. Die bekommen dann ein PRESSED Event, wenn man im WebGUI der CCU den virtuellen Knopf drückt.

Vielleicht kann man per HMScript dann irgendwie ein Virtuelles CUXD Jalousiendevice mit den virtuellen Tastern verknüpfen. Noch ne Stufe komplizierter ....
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB