Neues Modul HMCCU für Homematic CCU

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

Vorheriges Thema - Nächstes Thema

Roland303

Verstehe leider gerade Bahnhof, ich habe es nach den Wiki gemacht. Ich habe in der config das drin:
define d_ccu HMCCU 192.168.178.62
attr d_ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
attr d_ccu ccudef-readingformat datapoint
attr d_ccu ccudef-readingname ^(.+\.)?AES_KEY$:sign;;^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?BATTERY_STATE$:batteryLevel;;^(.+\.)?UNREACH$:Activity;;^(.+\.)?TEMPERATURE$:+temperature;;^(.+\.)?SET_TEMPERATURE$:+desired-temp;;^(.+\.)?HUMIDITY$:+humidity;;^(.+\.)?LEVEL$:+pct;;^(.+\.)?CONTROL_MODE$:+controlMode
attr d_ccu ccudef-substitute AES_KEY!(0|false):off,(1|true):on;;LOWBAT,LOW_BAT!(0|false):ok,(1|true):low;;UNREACH!(0|false):alive,(1|true):dead;;MOTION!(0|false):noMotion,(1|true):motion;;DIRECTION!0:stop,1:up,2:down,3:undefined;;WORKING!0:false,1:true;;INHIBIT!(0|false):unlocked,(1|true):locked
attr d_ccu ccuflags extrpc
attr d_ccu rpcinterfaces BidCos-Wired,BidCos-RF,VirtualDevices
attr d_ccu rpcinterval 2
attr d_ccu rpcport 2000,2001,9292
attr d_ccu rpcqueue /tmp/ccuqueue
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state

define d_ccu_rpc HMCCURPC 192.168.178.62
attr d_ccu_rpc stateFormat rpcstate/state
attr d_ccu_rpc verbose 2
dann mit den Befehl :
get d_ccu devicelist create ^Ther.* t=dev f=HM_%n room=Homematic und danach set HM_Thermostat defaults
die Sachen geholt und das ist raus gekommen
define HM_Thermostat HMCCUDEV 000A97098A31DF
attr HM_Thermostat IODev d_ccu
attr HM_Thermostat controldatapoint 1.SET_POINT_TEMPERATURE
attr HM_Thermostat eventMap /datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.CONTROL_MODE 2:Holiday/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5:on/
attr HM_Thermostat room Wohnzimmer
attr HM_Thermostat statedatapoint 1.SET_POINT_TEMPERATURE
attr HM_Thermostat stripnumber 1
attr HM_Thermostat substexcl control
attr HM_Thermostat substitute SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;;WINDOW_STATE!(0|false):closed,(1|true):open
attr HM_Thermostat webCmd control:Boost:Auto:Manual:Holiday:on:off
attr HM_Thermostat widgetOverride control:slider,4.5,0.5,30.5,1
Wäre super wenn du mir sagen könntest wo mein Fehler ist

zap

Zunächst wäre es hilfreich, wenn Du nächstes Mal den code Tag benutzt (die Raute im Forum Editor). Dann wird das etwas übersichtlicher.

Du hast doch HM-IP Geräte, oder? Dann musst Du beim Attribut rpcinterfaces auch HM-IP auswählen. Wenn dann nach einem Neustart des RPC-Servers immer noch keine Readings automatisch aktualisiert werden, solltest Du Dir mal das FHEM Logfile anschauen und prüfen, ob da Fehlermeldungen von HMCCU oder HMCCURPC drin sind.

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Roland303

Dank dir, du hast mir super weiter geholfen. Wieder was gelernt, so macht es Spaß

Init

Hallo zusammen,

gibt es die Möglichkeit bei einem Taster die Zeit von     
1\.PRESS_(SHORT|LONG).*
als Status anzeigen zu lassen?

Momentan habe ich dort immer "Initialized" stehen.

VG
Marc

zap

Möchtest du den Status  von PFESS_XX in STATE oder was meinst du genau mit "Zeit"?
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Init

Ne, der Status von PRESS_XX ist bei mir ja immer pressed, daher hatte ich drüber nachgedacht, was hier Sinn ergeben könnte. Und da dachte ich mir, dass ich von 1\.PRESS_(SHORT|LONG).* die Zeit des letzten updates anzeigen könnte.

Mave

Hallo zusammen,

ich habe folgenden Taster über RaspberryMatic in FHEM eingebunden:
https://www.elv.de/homematic-schaltaktor-fuer-batteriebetrieb-komplettbausatz.html

Was muß ich jetzt wie konfigurieren, damit ich beim Device einen Button sehe, der beim drücken für eine Sekunde schließt und dann wieder öffnet. Ich möchte damit ein Garagentor steuern, das über eine Ein-Knopf-Steuerung funktioniert.

Vielen Dank.

Grüße Mave

zap

#1522
Zitat von: Mave am 17 Juni 2017, 16:54:44
Was muß ich jetzt wie konfigurieren, damit ich beim Device einen Button sehe, der beim drücken für eine Sekunde schließt und dann wieder öffnet. Ich möchte damit ein Garagentor steuern, das über eine Ein-Knopf-Steuerung funktioniert.


Ich habe mein Garagentor über einen HM-LC-Sw1-Pl-CT-R1 angebunden (das ist die Schaltsteckdose mit potenzialfreiem Ausgang). Das dürfte weitgehend ähnlich sein. Wenn Du Deinen Schalter mit HMCCUCHN definierst, könnte es wie folgt aussehen:


attr mydev ccureadingfilter (STATE|WORKING)
attr mydev cmdIcon press:fts_garage
attr mydev event-on-change-reading .*
attr mydev eventMap /on-for-timer 1:press/
attr mydev statedatapoint STATE
attr mydev statevals on:true,off:false
attr mydev substitute STATE!(0|false):off,(1|true):on;WORKING!(0|false):no,(1|true):yes
attr mydev webCmd press


Bei HMCCUDEV ersetzt Du beim Attribut statedatapoint STATE durch 1.STATE

Außerdem musst Du beim Attribut eventMap aufpassen. Ich habe hier als Schaltdauer für on-for-timer 1 Sekunde angegeben. Der Wert ist abhängig von der Motorsteuerung.

Das eventMap Attribut erzeugt einen "Set press" Befehl. Dafür wird mit CmdIcon und WebCmd ein Button definiert.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

zap

Zitat von: Init am 17 Juni 2017, 16:01:44
Ne, der Status von PRESS_XX ist bei mir ja immer pressed, daher hatte ich drüber nachgedacht, was hier Sinn ergeben könnte. Und da dachte ich mir, dass ich von 1\.PRESS_(SHORT|LONG).* die Zeit des letzten updates anzeigen könnte.

Das geht über das FHEM Standardattribut stateFormat. Dieses Attribut setzt Du nicht auf einen Readingname sondern auf einen Perl-Code, der mit der Funktion ReadingsTimestamp die Zeit der letzten Änderung ermittelt.

Ungefähr so (nicht getestet):


attr mydev stateFormat { ReadingsTimestamp ("mydev", "1.PRESS_SHORT", "n/a") }

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Mave

Hallo zap,

super, vielen Dank. Hat super funktioniert.

Allerdings würde ich gerne das, was Du jetzt alles geschrieben und ich umgesetzt habe, auch verstehen.

Ich möchte nämlich gleich im Anschluß noch eine Aussenlampe über einen Bewegungsmelder schalten, die aber nur bei Dunkelheit angehen soll.
Auch da stehe ich im Moment noch voll auf dem Schlauch und aus dem Wiki werde ich teilweise nicht wirklich schlau.

Wärst Du so lieb und würdest mir noch erklären, was die einzelnen Attribute genau machen?

Vielen Dank.

Grüße Mave

Ralli

Mach das doch besser in der CCU! Entweder per Direktverknüpfung oder per Programm.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Mave

zap,

eines ist mir noch aufgefallen:

Als StatusIcon bekomme ich die Glühbirne, die nach Klicken des GaragenIcons für 1 Sekunde an geht. Damit wird quasi das Drücken des Tasters symbolisiert.
Allerdings kann ich auch auf die Glühbirne draufklicken und dann bleibt sie dauerhaft an. Ist damit der Taster auch dauerhaft gedrückt?

Kann ich eventuell das Klicken auf die Glühbirne ohne Funktion setzen?

Vielen Dank.

Grüße Mave

Mave

Hallo Ralli,

vielen Dank für den Tipp. Das wäre auch eine Möglichkeit, ja.

Allerdings würde ich das gerne zu Übungszwecken in FHEM realisieren.

Irgendwie muß ich das ja alles mal lernen....

Grüße Mave

zap

Wirf das statevals Attribut wieder raus, dann sollte die Lampe verschwinden.

Mit der Verknüpfung hat Ralli recht. Ziel von HMCCU ist es nicht, die CCU zu ersetzen, sondern FHEM mit der CCU zu verbinden. Das, was man besser in der CCU machen kann, sollte man auch da machen (direkte Verknüpfungen bzw Peering oder auch Heizungsgruppen). Das meine ich mit "best of both worlds".

Natürlich kannst du das auch alles in FHEM machen, ist aber viel aufwändiger (mit Noftify und anderen Nettigkeiten).

Zur Erklärung der Attribute (nur die nicht FHEM Standard sind):

ccureadingfilter legt fest, welche Datenpunkte eines CCU Gerätes als Readings gespeichert werden.
Substitute ersetzt Werte der CCU durch sprechendere Werte
Statedatapoint lett fest, welcher Datenpunkt als STATE im FHEM Device angezeigt wird.

Das ist eigentlich schon alles. Der Rest ist FHEM Standard.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Mave