HMCCU Beispiel Geräte-Definitionen

Begonnen von zap, 25 März 2016, 16:08:13

Vorheriges Thema - Nächstes Thema

tatu123

So jetzt habe ich mich noch mal (wieder) mit der Problematik auseinandergesetzt. Jetzt weiß ich auch warum ich was gemacht habe.  :-\

Also meine Meldung das der Slider im manuellem Betrieb funktioniert war falsch. Er geht nicht. Warum er beim Schnelltest heute Mittag
so tat als würde es gehen kann ich nicht mehr nachvollziehen. Sorry

Der manuelle Betrieb wird "nur" 3.LEVEL geändert. Das ist bei mir state. Man müsste im Slider state anzeigen und Änderungen (Bewegung des sliders) über control zurückmelden. Ich denke das müsste zap jedoch in das Modul einprogrammieren. Wäre vielleicht mal eine Anregung.  8) ::)
Das "Problem" besteht ja offensichtlich bei mehreren Hm-Geräten.
Vielleicht gibt es noch andere Wege ich kenne sie jedenfalls nicht. Würde mich aber über jede Anregung freuen.

Im Remote-Betrieb funktioniert der Slider auch nur weil ich über 4.LEVEL steuere. Sollte eine Steuerung z.B. durch die CCU auf 5. bzw. 6.LEVEL erfolgen zeigt das der slider auch nichts an.

Sorry noch mal für die Verwirrung.

VG
Heiko

zap

#376
Theoretisch müsste es mit dem Attribut ccureadingname umsetzbar sein. Etwa so:

attr xy ccureadingname [34].LEVEL:+control

Vermutlich wird das Reading control aber ganz am Ende gesetzt und daher der von ccureadingname gesetzte Wert überschrieben.

Jetzt beim Schreiben kommt mir noch eine Idee: Man könnte control durch einen anderen Befehl/Reading ersetzen.


attr xy eventMap /datapoint 4.LEVEL:ctrl:slider,0,10,100/
attr xy ccureadingname [34].LEVEL:+ctrl


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

tatu123

Hallo zap,

musste ich natürlich gleich ausprobieren.  ;D

Tut erst mal was es soll.

Nur leider hier im speziellen eben nicht. Das Problem der Zusammenfassung funktioniert. Jedoch steht im 4.Level entweder 0 oder 100 drin.
Das heißt mit deiner Lösung wird der Slider auf den Wert von 4.Level (0 oder 100) gesetzt. Es sollte jedoch der Wert von 3.Level zu sehen sein.  :-[

Steuern über den Slider tut.

Ich würde noch mal mein vorigen Vorschlag einbringen wollen. Anpassung des Moduls ggf. so (nur in unreine gedacht) bei
setzten von verschieden Readinges von State und control durch den Nutzer wird ein neues Reading erzeugt welches state Anzeigt und control
zum Steuern benutzt.

Vielen Dank für deine Bemühungen

VG
HEiko

zap

ich glaube, das bekomme ich erst gelöst, wenn ich so ein Teil in Betrieb habe und die verschiedenen Fälle live getestet habe.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Depechem

#379
es wäre auf alle Fälle super wenn wir das in FHEM irgendwie lösen könnten. Im homematic-forum findet man über das Problem einiges. Dort wird aber immer beschrieben das die Rohdaten ja an weitere Module weitergeleitet werden (iobroker oder Apps...) und diese das Problem dann intern lösen. Angeblich wären alle Apps die es für HM gibt mit dem Problem vertraut und passt die 2 Readings automatisch so an das es richtig angezeigt wird.

Was mich aber extrem stutzig macht, dass wir jetzt erst 2 Leute sind bei denen das Problem aufgefallen ist  :-[ Wobei dies ja eigentlich für eine Automation extrem wichtig ist. Wenn meine Frau abends den bereits automatisch geschlossenen Rolladen am Schalter um 50% öffnet, merkt das es ein wenig zu weit offen ist - stoppt  - nochmal ein stück runter macht - stoppt > dann denkt meine Steuerung (die 4.LEVEL anzeigt) das Rollo ist geschlossen. Dem ist aber nicht der Fall. Auf meinen Wandtablet sind alle Rolls mit Slider angezeigt, ein weiteres Reading mit Prozentwert zusätzlich anzeigen zu lassen wäre ja noch mehr Platzverbrauch.
Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Chris8888

Hallo,
anbei eine einfache Default-Definition für den neuen HmIP-FCI6

attr HM_Lueftungsanzeige IODev ccu
attr HM_Lueftungsanzeige ccureadingfilter (^LOW_BAT|^STATE)
attr HM_Lueftungsanzeige ccureadingformat datapoint
attr HM_Lueftungsanzeige ccureadingname 0.(LOWBAT|LOW_BAT):+battery
attr HM_Lueftungsanzeige event-on-change-reading .*
attr HM_Lueftungsanzeige stateFormat Kanal 1: 1.STATE /2: 2.STATE /3: 3.STATE /4: 4.STATE /5: 5.STATE /6: 6.STATE
attr HM_Lueftungsanzeige substitute STATE!(0|false):closed,(1|true):open;;LOW_BAT!(0|false):ok,(1|true):low


Alle Kanäle sind als "Tür/Fensterkontakt" konfiguriert.
Tut, was er tun soll....

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

math78

#381
Hallo,

Wie bekomme ich denn eine virtuelle Fernbedienung mit den beiden Schaltern in FHEM angelegt?

Danke.

Grüße

Matthias



zap

Mit

define mydev HMCCUCHN ccuDevName

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

math78

Habe es gerade versucht - gibt aber keine Infos zum Device.


zap

get deviceinfo scheint für die virtuellen Geräte / Taster nicht zu funktionieren. Verwenden kannst Du das erstellte HMCCUCHN Device trotzdem. Wenn du z.B. ccureadingfilter auf PRESS setzt, solltest Du die Tastendrücke als Readings bekommen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

bastelfeak

#385
Hallo, zwei Ergänzungen:


channel:HmIP-SMI
_channels=1
_description=Bewegungsmelder
ccureadingfilter=(ILLUMINATION|MOTION)
controldatapoint=1.MOTION_DETECTION_ACTIVE
eventMap=/datapoint 1.RESET_MOTION 1:reset/datapoint 1.MOTION_DETECTION_ACTIVE 1:detection-on/datapoint 1.MOTION_DETECTION_ACTIVE 0:detection-off/
hmstatevals=SABOTAGE!(1|true):sabotage
statedatapoint=1.MOTION
stripnumber=1
substitute=MOTION!(0|false):no,(1|true):yes;MOTION_DETECTION_ACTIVE!(0|false):off,(1|true):on
webCmd=control
widgetOverride=control:uzsuToggle,off,on



device:HmIP-SMI
_description=Bewegungsmelder
ccureadingfilter=(ILLUMINATION|MOTION)
controldatapoint=1.MOTION_DETECTION_ACTIVE
eventMap=/datapoint 1.RESET_MOTION 1:reset/datapoint 1.MOTION_DETECTION_ACTIVE 1:detection-on/datapoint 1.MOTION_DETECTION_ACTIVE 0:detection-off/
hmstatevals=SABOTAGE!(1|true):sabotage
statedatapoint=1.MOTION
stripnumber=1
substitute=MOTION!(0|false):no,(1|true):yes;MOTION_DETECTION_ACTIVE!(0|false):off,(1|true):on
webCmd=control
widgetOverride=control:uzsuToggle,off,on


device:HmIP-BROLL|HmIP-FROLL
_description=Rollladenaktor
ccureadingfilter=(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE|SELF_CALIBRATION_RESULT)
ccureadingname=LEVEL:+pct
ccuscaleval=LEVEL:0:1:0:100
cmdIcon=up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint=4.LEVEL
eventMap=/datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/datapoint 3.SELF_CALIBRATION 0:stopCalibration/datapoint 3.SELF_CALIBRATION 1:startCalibration/
hmstatevals=ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat
statedatapoint=4.LEVEL
stripnumber=1
substexcl=control|pct
substitute=LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow;SELF_CALIBRATION_RESULT!(0|false):failed,(1|true):ok
webCmd=control:up:stop:down
widgetOverride=control:slider,0,10,100


channel:HmIP-BROLL|HmIP-FROLL
_channels=4
_description=Rollladenaktor
ccureadingfilter=(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE)
ccureadingname=LEVEL:+pct
ccuscaleval=LEVEL:0:1:0:100
cmdIcon=up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint=LEVEL
eventMap=/datapoint STOP true:stop/datapoint LEVEL 0:down/datapoint LEVEL 100:up/
hmstatevals=ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat
statedatapoint=LEVEL
stripnumber=1
substexcl=control|pct
substitute=LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow
webCmd=control:up:stop:down
widgetOverride=control:slider,0,10,100


EDIT:
Ich weiß nicht wie es beim BROLL aussieht, aber für den FROLL ist das die sinnvollere Definition. So erscheint auch immer die angefahrene Position am Regler. Kanal 3 hat nur den aktuellen Status parat und Kanal 4 dient ausschließlich zum steuern. Das ist jetzt konkreter in der Definition festgehalten. Einen Kalibrierungszustand gibt es nicht im FROLL, deshalb ist der rausgeflogen.


device:HmIP-FROLL
_description=Rollladenaktor
ccureadingfilter=(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|LEVEL|ACTIVITY_STATE)
ccureadingname=3.LEVEL:+pct
ccuscaleval=LEVEL:0:1:0:100
cmdIcon=up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint=4.LEVEL
eventMap=/datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/datapoint 3.SELF_CALIBRATION 0:stopCalibration/datapoint 3.SELF_CALIBRATION 1:startCalibration/
hmstatevals=ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat
statedatapoint=4.LEVEL
stripnumber=1
substexcl=control|pct
substitute=3.LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow;
webCmd=control:up:stop:down
widgetOverride=control:slider,0,10,100




bastelfeak

Und noch eins:

device:HM-Sec-MD|HM-Sec-MDIR|HM-Sec-MDIR-2|HM-Sec-MDIR-3|HM-Sen-MDIR-O-3
_description=Bewegungsmelder
ccureadingfilter=(BRIGHTNESS|MOTION)
hmstatevals=ERROR!1:sabotage
statedatapoint=1.MOTION
substitute=MOTION!(0|false):no,(1|true):yes;ERROR!0:no,1:sabotage


channel:HM-Sec-MD|HM-Sec-MDIR|HM-Sec-MDIR-2|HM-Sec-MDIR-3|HM-Sen-MDIR-O-3
_channels=1
_description=Bewegungsmelder
ccureadingfilter=(BRIGHTNESS|MOTION)
hmstatevals=ERROR!1:sabotage
statedatapoint=MOTION
substitute=MOTION!(0|false):no,(1|true):yes;ERROR!0:no,1:sabotage

Depechem

#387
Geräte-Definitionen für HMiP-Wired "HmIPW-DRBL4"
Für jeden Rolladen muss ein extra HMCCUDEV angelegt werden damit die einzeln gesteuert werden können sowie der aktuelle Status ausgewertet wird.
Am besten geht das indem man ein HMCCUDEV anlegt und dann über den "copy" Befehl die anderen 3 Dev erstellt.
Wichtig ist nur immer die Kanäle aus dem Beispiel passend zu ändern (9.LEVEL ist hierbei der Statuskanal) (10.LEVEL der Aktorkanal)

device:HmIPW-DRBL4
_description=4-fach-Jalousie-/Rollladenaktor
   ccureadingfilter 9.LEVEL;9.ACTIVITY_STATE;10.ACTIVITY_STATE;(ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|SELF_CALIBRATION_RESULT)
   ccureadingname 9.LEVEL$:+control
   ccuscaleval LEVEL:0:1:0:100
   cmdIcon    up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
   controldatapoint 10.LEVEL
   devStateIcon open:fts_window_2w@green closed:fts_shutter_100@red 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 0\d.*:fts_shutter_100
   event-on-change-reading .*
   eventMap   /datapoint 10.STOP true:stop/datapoint 10.LEVEL 0:down/datapoint 10.LEVEL 100:up/
   group      Rollos
   hmstatevals ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat
   room       Rollos
   statedatapoint 9.LEVEL
   stripnumber 0
   substexcl  control|pct
   substitute LEVEL!#0-0:closed,#100-100:open;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow;SELF_CALIBRATION_RESULT!(0|false):failed,(1|true):ok
   userattr   room_map structexclude
   verbose    5
   webCmd     control:up:stop:down
   widgetOverride control:slider,0,10,100
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

zap

Thanks!

Bei solchen Mehrfach-Aktoren stösst set defaults an seine Grenzen. Da muss ich mir mal was überlegen. Kommt ja bei wired Devices relativ häufig vor.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Simon74

#389
Geräte-Definitionen für HmIP: HmIP-FBL (Jalousieaktor)
ccureadingfilter müsste noch angepasst werden ?

defmod HmIP_ro_wz HMCCUDEV 00139709A67D5D
attr HmIP_ro_wz IODev ccu31
attr HmIP_ro_wz alias Rollo WZ
attr HmIP_ro_wz ccureadingfilter .*
attr HmIP_ro_wz ccuscaleval LEVEL:0:1:0:100,LEVEL_2:0:1:0:100
attr HmIP_ro_wz controldatapoint 4.LEVEL
attr HmIP_ro_wz devStateIcon 100:fts_shutter_1w_10:Ab 0:fts_shutter_1w_100@#aa6900:Auf 70:fts_shutter_1w_50@#aa6900:Ab .*:fts_shutter_1w_50@#ad3333:Auf
attr HmIP_ro_wz eventMap /datapoint 4.STOP 1:Stop/ \
/datapoint 4.LEVEL_2 0 4.LEVEL 0:Ab/ \
/datapoint 4.LEVEL_2 100 4.LEVEL 100:Auf/ \
/datapoint 4.LEVEL_2 20 4.LEVEL 70:Sonne/ \
/datapoint 4.LEVEL_2 50 4.LEVEL ReadingsNum($NAME,"3.LEVEL",0):Offen/
attr HmIP_ro_wz group Jalousien
attr HmIP_ro_wz room Homematic,Wohnzimmer
attr HmIP_ro_wz statedatapoint 3.LEVEL
attr HmIP_ro_wz webCmd Auf:Ab:Stop:Sonne:Offen


Kleine Korrektur im Eventmap /datapoint (Offen)