HMCCU Beispiel Geräte-Definitionen

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

Vorheriges Thema - Nächstes Thema

zap

Habe Deine Konfiguration weitgehend in die Defaults übernommen. Das Attribut statevals sollte man weg lassen, da der statedatapoint 1.PRESENCE_DETETCTION_STATE nicht beschreibbar ist.

Ergänzt habe ich noch

hmstatevals SABOTAGE!(1|true):sabotage

Substitute kann man etwas verkürzen. LOWBAT ist Default (ggf. im I/O Device mal "set defaults" ausführen, setzt einige ccudef- Attribute):

substitute PRESENCE_DETECTION_STATE!(true|1):presence,(false|0):noPresence;PRESENCE_DETECTION_ACTIVE!(0|false):off,(1|true):on

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

Chris8888

Hallo Zap,

mal wieder was gelernt. Die Defaults bei dem IO-Devices kannte ich noch gar nicht. ;-)
Danke.

Ggf noch eine Gerät für die Default-Liste:
   
HmIP-STHD - die Attr sind identisch zum WTH-2, den Drehknopf kann man eh nicht elktr. bedienen.
;-)

Viele Grüße
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.

moppy

Servus, nachdem ich paar Stündchen rumgespielt habe um 12 notifys zu einem zusammenzufassen, möchte ich gerne mein Wissen mit euch teilen.

Der HM-PB-6-WM55 hat 6 Tasten und man kann einen kurzen und langen Tastendruck auswerten. Das Device legt bei mir für jede Taste zwei Readings an (z.B. 1.PRESS_SHORT und 1.PRESS_LONG) und als Event wird immer eine "1" generiert.

Man kann alle Readings zu einem neuen Reading zusammenfassen, gefunden im Wiki unter HMCCU Best Practice.

attr DEVICE ccureadingname ^[1-6].PRESS_(SHORT|LONG)$:PRESSED

Problem an der Sache war, dass jede Taste das Event "1" generiert und man somit nicht zwischen den verschiedenen Tasten unterscheiden kann.

attr DEVICE substitute 1.PRESS_SHORT!(1|true):1short;2.PRESS_SHORT!(1|true):2short;3.PRESS_SHORT!(1|true):3short;4.PRESS_SHORT!(1|true):4short;5.PRESS_SHORT!(1|true):5short;6.PRESS_SHORT!(1|true):6short;1.PRESS_LONG!(1|true):1long;2.PRESS_LONG!(1|true):2long;3.PRESS_LONG!(1|true):3long;4.PRESS_LONG!(1|true):4long;5.PRESS_LONG!(1|true):5long;6.PRESS_LONG!(1|true):6long

Jetzt haben wir ein neues Reading mit dem Namen "PRESSED" und den nötigen Events (z.B. "1short, 1long, 2short ...)

Die DEF meines Notifys

HM_Wz_Wandtaster_Dev:PRESSED.* {
if (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "1short") {
fhem("set Harmony_Mac_Mini on")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "2short") {
fhem("set Harmony_Mac_Mini off")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "3short") {
fhem("set ZW_Wz_Essen toggle")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "4short") {
fhem("set ZW_Wz_Wandschalter toggle")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "5short") {
fhem("set HUE_FLS_Wz_Schnapsbar toggle")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "6short") {
fhem("set ZW_Wz_Subwoofer toggle")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "1long") {
fhem("set Denon_AVR volumeUp 2")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "2long") {
fhem("set Denon_AVR volumeDown 2")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "3long") {
fhem("")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "4long") {
fhem("")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "5long") {
fhem("")
}
elsif (ReadingsVal("HM_Wz_Wandtaster_Dev", "PRESSED", "") eq "6long") {
fhem("set Wz_Off off")
}
else {
}
}


Wer lieber ein DOIF verwendet hier noch die DEF des DOIF (unbedingt  "do always" verwenden)

([HM_Wz_Wandtaster_Dev:PRESSED] eq "1short") (set Harmony_Mac_Mini on)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "2short") (set Harmony_Mac_Mini off)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "3short") (set ZW_Wz_Essen toggle)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "4short") (set ZW_Wz_Wandschalter toggle)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "5short") (set HUE_FLS_Wz_Schnapsbar toggle)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "6short") (set ZW_Wz_Subwoofer toggle)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "1long") (set Denon_AVR volumeUp 2)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "2long") (set Denon_AVR volumeDown 2)
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "3long") ()
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "4long") ()
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "5long") ()
DOELSEIF ([HM_Wz_Wandtaster_Dev:PRESSED] eq "6long") (set Wz_Off off)
DOELSE ()


Vielleicht hilfts dem ein oder anderem bisschen Ordnung in FHEM zu bringen,
lg Manu
Intel NUC7i5 - Proxmox
HP Microserver Gen8 3,3ghz Xeon
http://coldcorner.de

wladiM

#183
Hallo Leute,
habe vor kurzem meine ALPHA-IP-RBG Raumthermostate eingelesen Config siehe unten . Es funktioniert mittlerweile schon ganz gut. Mich würde noch interessieren wie ich den Aktuellen MODE farblich darstellen kann.
z.B. Wenn der Regler auf AUTO steht dann Auto grün hinterlegt und Manuel wird Manuel grün hinterlegt.
Hab da noch nicht so viel Erfahrung mit.
Dann noch eine Frage zu dem Control. Lässt sich da eine Spanne wie bei dem Slider einstellen von 0-32° in einer Schritten oder muss ich jeden wert einzeln eintippen? Wie jetzt auch. 

Wie habt ihr es mit der Aktualisierung der Werte gelöst?
ich hab eine AT Funktion laufen um zyklisch die Werte abzufragen. Gibt es da eine bessere Lösung?

define Ku_Thermostat HMCCUDEV Ku_Temp
attr Ku_Thermostat IODev d_ccu
attr Ku_Thermostat alias 6.Thermostat_Küche
attr Ku_Thermostat ccureadingfilter (ACTUAL_TEMPERATURE|ACTIVE_PROFILE|BOOST_MODE|SET_POINT_TEMPERATUR|HUMIDITY|WINDOW_STATE|LOW_BAT)
attr Ku_Thermostat ccureadingformat datapoint
attr Ku_Thermostat ccuverify 2
attr Ku_Thermostat controldatapoint SET_POINT_TEMPERATURE
attr Ku_Thermostat event-on-change-reading .*
attr Ku_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 Ku_Thermostat group Küche
attr Ku_Thermostat icon hm-tc-it-wm-w-eu
attr Ku_Thermostat room Erdgeschoss,Heizung
attr Ku_Thermostat stateFormat T: 1.ACTUAL_TEMPERATURE°C H: 1.HUMIDITY% D: 1.SET_POINT_TEMPERATURE°C
attr Ku_Thermostat statechannel 1
attr Ku_Thermostat statedatapoint ACTUAL_TEMPERATURE
attr Ku_Thermostat stripnumber 1
attr Ku_Thermostat substitute LOW_BAT!(0|false):OK,(1|true):LEER;;SET_POINT_TEMPERATURE!#0-4.5:AUS,#30.5-40:AN;;WINDOW_STATE!(0|false):closed,(1|true):open
attr Ku_Thermostat webCmd control:Auto:Manual
attr Ku_Thermostat widgetOverride control:AUS,5,10,15,16,17,18,19,20,20.5,21,21.5,22,22.5,23,23.5,24,25,26,27,28,29,30,AN


Bin für jeden Tipp dankbar.

Gruß
Wladi

zap

Momentan funktionieren bei mir die Slider im Webinterface auch nicht.

Zum automatischen Update der Werte musst Du den RPC-Server konfigurieren und starten. Siehe auch Wiki.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

desasterguy

Hallo Leute,

ich stehe vor der Herausforderung, einen "HM_HmIP_FROL" also einen Homematic Rolladenaktor Unterputz in FHEM zum laufen zu bringen.
Hat schon jemand einen Autor eingebunden?

Erkannt wurde das Device und ich habe auch mehrere Readings siehe angehängte Übersicht.

Ich bin auch schon dahinter gekommen, dass 3.LEVEL den Status des Rollladen anzeigt. 1,00 offen, 0,7 = 70%, 0,0 = geschlossen

Was mir schleierhaft ist, wie kann ich über FHEM zum einen den Auf und AB Befehl geben als auch bestenfalls die Prozentangabe der gewünschten Rollladenstellung.

Ich hoffe es kann jemand Licht ins Dunkle bringen. Ich bin noch sehr rudimentär in FHEM unterwegs.

Viele Grüße
desasterguy
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

zap

Auf und ab geht ebenfalls über LEVEL, nur nicht über das gleiche. Ich vermute, 3.LEVEL ist eine reine Statusanzeige. Zunächst solltst Du LEVEL in eine brauchbare Form bringen. Dazu setzt du das Attribut ccuscaleval auf folgenden Wert: LEVEL:0:1:0:100

Für auf und ab musst Du eines der LEVEL in den Kanälen 4-6 setzen. Welches musst du ausprobieren, z.B

set mydev datapoint 4.LEVEL 100

Oder

set mydev datapoint 4.LEVEL 0

Durch ccuscaleval kannst du nun echte Prozentwerte von 0-100 verwenden.

Wenn du dann den richtigen Kanal gefunden hast, kannst Du Dir mit eventMap einen Befehl dafür bauen, zB

attr mydev eventMap /datapoint 4.LEVEL 0:auf/datapoint 4.LEVEL:zu/

Danach geht

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

desasterguy

#187
Danke zap für die schnelle Antwort. Ich werde es mit deinen Infos nochmals versuchen. Bin mir sicher, dass ich damit zum laufen bekomme.

Wenn ich vorher gewusst hätte, dass die Rollladenaktoren HMIP noch nicht in den Standards vorhanden sind, hätte ich mich noch etwas geduldet, oder die non IP Variante gekauft. ;)

Ich habe gestern nach meinem Post natürlich noch fleißig weiter getüftelt. Und wie sollte es anders sein, der Stand den ich gepostet habe, sprich mit den ausgelesenen Readings habe ich leider nicht mehr.

Ich habe das Device ein paar mal gelöscht und seit dem bekomme ich es nicht mehr hin, die Reading die ich gepostet habe, wieder zu setzten (wurden automatisch angelegt).

Jetzt hat das Device nur noch die Readings:

Activity    alive          2017-10-07 15:07:45
hmstate   Initialized   2017-10-07 15:08:10
state       Initialized   2017-10-07 15:06:36

Sorry, für meine Unfähigkeit beim Thema HM. Sonst stelle ich mich besser an. :)

Dein Tip funktioniert.  Ich kann mit 4.LEVEL den Rollladen runter fahren und mit 5.LEVEL hochfahren.
Noch mit den Werten 0 und 1. Ich werde aber wenn die Readings wieder da sind deinen Rat umsetzen und die Werte anpassen.

Aber egal was ich mache ich bekomme die Readings nicht mehr eingelesen. Bei get Deviceinfo zeigt er mir aber schön alle an. Sehr ärgerlich. 😤
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

zap

Mach bitte mal ein list von Deinem Device und poste das.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

desasterguy

#189
Was genau meint List machen? Die Config des Device aus FHEM?

Siehe Anhang.

Viele Grüße
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

Maista

@desasterguy

zap meint
Zitatlist HM_HmIP-FROLL_001157099ADDB4
wenn dein angelegtes Gerät so heissen sollte.

Die Textausgabe dann hier posten, mit Code-Tags aus dem Menü wenn du hier etwas schreibst.

Gruss Gerd

desasterguy

Danke Gerd für die Aufklärung.
So, hier das/der List. 👍

Internals:
   DEF        001157099ADDB4
   IODev      d_ccu
   NAME       HM_HmIP_FROLL_001157099ADDB4
   NR         600
   STATE      Initialized
   TYPE       HMCCUDEV
   ccuaddr    001157099ADDB4
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HmIP-FROLL 001157099ADDB4
   ccutype    HmIP-FROLL
   channels   8
   firmware   1.2.0
   statevals  devstate
   READINGS:
     2017-10-07 19:36:37   Activity        alive
     2017-10-07 19:36:37   hmstate         Initialized
     2017-10-07 19:20:28   state           Initialized
   hmccu:
     dp:
       0.ACTUAL_TEMPERATURE:
         OVAL       23.000000
         VAL        23.000000
       0.CONFIG_PENDING:
         OVAL       false
         VAL        false
       0.DUTY_CYCLE:
         OVAL       false
         VAL        0
       0.ERROR_CODE:
         OVAL       0
         VAL        0
       0.ERROR_OVERHEAT:
         OVAL       false
         VAL        false
       0.ERROR_OVERLOAD:
         OVAL       false
         VAL        false
       0.ERROR_UPDATE:
         OVAL       false
         VAL        false
       0.OPERATING_VOLTAGE:
         OVAL       0.000000
         VAL        0.000000
       0.RSSI_DEVICE:
         OVAL       190
         VAL        -65
       0.RSSI_PEER:
         OVAL       0
         VAL        0
       0.UNREACH:
         OSVAL      alive
         OVAL       false
         SVAL       alive
         VAL        0
       0.UPDATE_PENDING:
         OVAL       false
         VAL        false
       3.LEVEL:
         OVAL
         VAL
       3.PROCESS:
         OVAL       0
         VAL        0
       3.SECTION:
         OVAL       15
         VAL        15
       4.LEVEL:
         OVAL       0.000000
         VAL        0.0
       4.PROCESS:
         OVAL       0
         VAL        0
       4.SECTION:
         OVAL       0
         VAL        0
       5.LEVEL:
         OVAL       0.000000
         VAL        0.0
       5.PROCESS:
         OVAL       0
         VAL        0
       5.SECTION:
         OVAL       0
         VAL        0
       6.LEVEL:
         OVAL       0.000000
         VAL        0.0
       6.PROCESS:
         OVAL       0
         VAL        0
       6.SECTION:
         OVAL       0
         VAL        0
       7.WEEK_PROGRAM_CHANNEL_LOCKS:
         OVAL       0
         VAL        0
Attributes:
   IODev      d_ccu
   room       Homematic
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

The Spirit

bin gerade dabei einen HM-RC-2-PBU-FM einzubinden.
Steuern darüber klappt, aber ich bekomm den Tastendruck am Taster selber in fhem nicht mit.
was mache ich falsch?

#taste unten küche-flur
define taster_unten_kueche_flur HMCCUCHN kueche_flur_unten
attr taster_unten_kueche_flur IODev d_ccu
attr taster_unten_kueche_flur ccureadingformat datapoint
attr taster_unten_kueche_flur event-on-change-reading .*
attr taster_unten_kueche_flur event-on-update-reading .*
attr taster_unten_kueche_flur room Küche
attr taster_unten_kueche_flur statedatapoint PRESS_SHORT
attr taster_unten_kueche_flur statevals press:true
attr taster_unten_kueche_flur substitute 1|true:pressed
THZ 304 Eco Baujahr 2015

zap

Das Attribut event-on-change-reading solltest Du entfernen. Bei Tastern muss man event-on-update-reading setzen (hast du richtig gemacht).

Einige Homematic Taster schicken nur Events bei Tastendrücken, wenn die Tasten mit einem Dummy Programm oder einer virtuellen Taste der CCU verknüpft sind. Frag nicht warum, ist so.

Am besten legst Du in der CCU ein Programm an, in dem Du für jeden Tasterkanal der einen Event an FHEM schicken soll einmal Tastendruck kurz und einmal Tastendruck lang abfragst. Diese Abfragen verknüpfst Du per ODER.

Als Aktivität setzt du einfach irgendeine Systenvariable auf einen Wert. Also vorher z.B. eine Systemvariable vom Typ Bool anlegen und dann bei Aktivität diese auf true setzen.

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: desasterguy am 07 Oktober 2017, 20:10:58
Danke Gerd für die Aufklärung.
So, hier das/der List. 👍


Mach mal ein

get HM_HmIP_FROLL_001157099ADDB4 update

Hast Du dann Readings?

Wenn nicht:

attr HM_HmIP_FROLL_001157099ADDB4 ccureadingfilter LEVEL

Dann nochmal das get update von oben.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)