Ich stelle hier mal einige meiner Client-Device Definitionen vor. Muss ja nicht jeder das Rad neu erfinden.
Tür-/Fensterkontakt HM-Sec-SCo:
# Es wird ein Readonly-Device für den Kanal TF-BO-Fenster:1 definiert
define HM_TF_BO_Fenster HMCCUCHN TF-BO-Fenster:1 readonly
# Uns interessieren nur einige Datenpunkte
attr HM_TF_BO_Fenster ccureadingfilter (ERROR|LOWBAT|STATE)
# Zeigt einen grünen/roten Punkt an
attr HM_TF_BO_Fenster devStateIcon closed:10px-kreis-gruen open:10px-kreis-rot
attr HM_TF_BO_Fenster event-on-change-reading .*
# Werte der CCU in den Readings ersetzen
attr HM_TF_BO_Fenster substitute STATE!(0|false):closed,(1|true):open;;LOWBAT!(0|false):no,(1|true):yes
Wand-Thermostat HM-TC-IT-WM-W-EU
# Das Wandthermostat hat in der CCU den Namen KL-AZ-TH
define HM_KL_AZ_TH HMCCUDEV KL-AZ-TH
# Uns interessieren nur einige Datenpunkte
attr HM_KL_AZ_TH ccureadingfilter (^HUMIDITY|^TEMPERATURE|^DEWPOINT|^SET_TEMPERATURE|^LOWBAT$|^WINDOW_OPEN)
# Güner/roter Kreis je nach Status
attr HM_KL_AZ_TH devStateIcon OK:10px-kreis-gruen Error:10px-kreis-rot Initialized:10px-kreis-gelb
attr HM_KL_AZ_TH event-on-change-reading .*
# Anzeige in STATE formatieren
attr HM_KL_AZ_TH stateFormat T: KL-AZ-TH.1.TEMPERATURE° H: KL-AZ-TH.1.HUMIDITY% D: KL-AZ-TH.2.SET_TEMPERATURE° P: DEWPOINT°
# Statechannel für das Lesen/Setzen der Zieltemperatur mit get/set devstate
attr HM_KL_AZ_TH statechannel 2
# Datenpunkt für das Lesen/Setzen der Zieltemperatur mit get/set devstate
attr HM_KL_AZ_TH statedatapoint SET_TEMPERATURE
# Nur eine Nachkommastelle bei nummerischen Werten
attr HM_KL_AZ_TH stripnumber 1
# Werte aus CCU vor dem Speichern in Readings ersetzen
attr HM_KL_AZ_TH substitute LOWBAT!(0|false):no,(1|true):yes;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
# Userreading für Taupunkt Berechnung
attr HM_KL_AZ_TH userReadings DEWPOINT {HMCCU_Dewpoint($name,"KL-AZ-TH.1.TEMPERATURE", "KL-AZ-TH.1.HUMIDITY","n/a")}
Heizkörper Thermostat HM-CC-RT-DN
define HM_KL_AZ_HZ HMCCUDEV KL-AZ-HZ
# Uns interessieren nur einige Datenpunkte
attr HM_KL_AZ_HZ ccureadingfilter (LOWBAT|TEMPERATURE|VALVE_STATE|CONTROL)
attr HM_KL_AZ_HZ event-on-change-reading .*
# Anzeige STATE formatieren
attr HM_KL_AZ_HZ stateFormat T: KL-AZ-HZ.4.ACTUAL_TEMPERATURE° D: KL-AZ-HZ.4.SET_TEMPERATURE° V: KL-AZ-HZ.4.VALVE_STATE%
# Kanalnummer für Lesen/Setzen der Zieltemperatur mit get/set devstate
attr HM_KL_AZ_HZ statechannel 4
# Datenpunkt für Lesen/Setzen der Zieltemperatur mit get/set devstate
attr HM_KL_AZ_HZ statedatapoint SET_TEMPERATURE
# Nur eine Nachkommastelle bei nummerischen Werten
attr HM_KL_AZ_HZ stripnumber 1
# Werte aus CCU vor dem Speichern in Readings ersetzen
attr HM_KL_AZ_HZ substitute LOWBAT!(0|false):no,(1|true):yes;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
# Die folgenden Attribute ermöglichen die Einstellung der Zieltemperatur per Slider
attr HM_KL_AZ_HZ controldatapoint 4.SET_TEMPERATURE
attr HM_KL_AZ_HZ webCmd control
attr HM_KL_AZ_HZ widgetOverride control:slider,10,1,25
Virtuelle Gerätegruppe aus Wand- und Heizkörper-Thermostat
# Die Gruppe "G-AZ-HZ" existiert in der CCU. Sie besteht aus den Geräten KL-AZ-HZ,KL-AZ-TH
define HM_G_AZ_HZ HMCCUDEV G-AZ-HZ group=KL-AZ-HZ,KL-AZ-TH
# Uns interessieren nur einige Datenpunkte (hier gefiltert auf Kanäle)
attr HM_G_AZ_HZ ccureadingfilter G-AZ-HZ:1!(CONTROL_MODE|SET_TEMPERATURE),^KL-AZ!(^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|LOWBAT$|^VALVE|^CONTROL|^WINDOW_OPEN)
# Beim Setzen eines Wertes wird der gleiche Datenpunkt zur Verifikation gleich nochmal aus der CCU gelesen
attr HM_G_AZ_HZ ccuverify 1
# Für das Setzen der Zieltemperatur per Slider
attr HM_G_AZ_HZ controldatapoint 1.SET_TEMPERATURE
# Immer nützlich
attr HM_G_AZ_HZ event-on-change-reading .*
# Der RPC-Server aktualisiert keine Gruppen-Devices. Daher werden hier die Datenpunkte der echten Devices auf die der Gruppendevices gemappt
attr HM_G_AZ_HZ mapdatapoints KL-AZ-TH:2.SET_TEMPERATURE=G-AZ-HZ:1.SET_TEMPERATURE,KL-AZ-TH:2.CONTROL_MODE=G-AZ-HZ:1.CONTROL_MODE
# STATE Formatieren
attr HM_G_AZ_HZ stateFormat T: KL-AZ-TH.1.TEMPERATURE° H: KL-AZ-TH.1.HUMIDITY% D: KL-AZ-TH.2.SET_TEMPERATURE° P: DEWPOINT° V: KL-AZ-HZ.4.VALVE_STATE%
# Wie beim Wandthermostat (s. Beispiel oben)
attr HM_G_AZ_HZ statechannel 1
attr HM_G_AZ_HZ statedatapoint SET_TEMPERATURE
attr HM_G_AZ_HZ stripnumber 1
attr HM_G_AZ_HZ substitute LOWBAT!(0|false):no,(1|true):yes;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
# Userreadings für Taupunkt, Batteriestatus aller Einzelgeräte der Gruppe, Anzahl Batterien mit LOWBAT=yes
attr HM_G_AZ_HZ userReadings DEWPOINT {HMCCU_Dewpoint($name,"KL-AZ-TH.1.TEMPERATURE", "KL-AZ-TH.1.HUMIDITY","n/a")}, LOWBAT_STATE:(KL-AZ-TH.0.LOWBAT|KL-AZ-HZ.0.LOWBAT) {HMCCU_AggReadings($name, "KL.*LOWBAT","and","no","yes")}, LOWBAT_COUNT:(KL-AZ-TH.0.LOWBAT|KL-AZ-HZ.0.LOWBAT) {HMCCU_AggReadings($name, "KL.*LOWBAT","cnt","yes","")}
# Der Slider für die Zieltemperatur
attr HM_G_AZ_HZ webCmd control
attr HM_G_AZ_HZ widgetOverride control:slider,10,1,25
Schaltsteckdose HM-LC-Sw1-Pl-2
define HM_ST_WZ_Bass HMCCUDEV ST-WZ-Bass
# Nur einige Datenpunkte
attr HM_ST_WZ_Bass ccureadingfilter (STATE|LOWBAT|ON_TIME)
attr HM_ST_WZ_Bass ccureadings 1
attr HM_ST_WZ_Bass devStateIcon on:10px-kreis-gruen off:10px-kreis-rot Initialized:10px-kreis-gelb
attr HM_ST_WZ_Bass event-on-change-reading .*
attr HM_ST_WZ_Bass statechannel 1
# Ermöglicht den Befehl set on/off
attr HM_ST_WZ_Bass statevals on:true,off:false
attr HM_ST_WZ_Bass substitute STATE!true:on,false:off,1:on,0:off
Jalousienschalter (Beispiel von Achiim)
define Arbeitszimmer_Rolladen HMCCUDEV AZ-Rolladen 1
attr Arbeitszimmer_Rolladen IODev myHomematicCCU
attr Arbeitszimmer_Rolladen cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
attr Arbeitszimmer_Rolladen controldatapoint 1.LEVEL
attr Arbeitszimmer_Rolladen eventMap /datapoint 1.STOP 1:stop/datapoint 1.LEVEL 1:down/datapoint 1.LEVEL 0:up/
attr Arbeitszimmer_Rolladen group Arbeitszimmer
attr Arbeitszimmer_Rolladen icon fts_shutter_1w
attr Arbeitszimmer_Rolladen room 02_Oben,HMCCU
attr Arbeitszimmer_Rolladen statechannel 1
attr Arbeitszimmer_Rolladen statevals up:0.0,down:1.0
attr Arbeitszimmer_Rolladen stripnumber 1
attr Arbeitszimmer_Rolladen webCmd control:up:stop:down
attr Arbeitszimmer_Rolladen widgetOverride control:slider,0,0.05,1,1
Sehr cool!
Geht das auch mit ner normalen Vccu?
Nein. Das ist ausschließlich für die Module HMCCU, HMCCUDEV und HMCCUCHN (direkte Kopplung FHEM - CCU2).
Hi,
gibt es auch ein Gerätebeispiel für einen Bewegungsmelder? Und auch für andere Geräte wie Temperatursensoren, Rauchmelder etc. Hier stößt man in der Recherche schnell an die Grenzen, denn die übergebenen Readings lassen sind (z.B. Thema Dewpoint) nicht mehr so einfach verarbeiten wie bei einem Pairing mit dem HMLAN-Adapter.
VG Yil
Zum Thema Dimmer:
das Gerät wird in der Homematic Zentrale einwandfrei erkannt und ist von dort auch steuerbar.
Die Definition lautet: define <NAME> HMCCUDEV <SN> 1
Die Ergebnisse des Einlesens finde sich in den Anhängen: Internals, readings und Attribute
Zu den Attributen ist zu sagen, dass ich einige aus dem Kontext verschiedener Dialoge herausgefischt und adaptiert habe - im Ergebnis allerdings funktionieren sie nicht.
Ziel sollte es sein, den Dimmer mit set Dimmer on/off bzw. über den pct-Slider zu schalten.
Ich freue mich über Hilfe an dieser Stelle!
VG Yil
Beispiel einer Definition eines Temperatur-Devices:
define KE.TempInside HMCCUDEV <SN>1
attr KE.TempInside IODev HMCCU2
attr KE.TempInside alias Kellerklima
attr KE.TempInside devStateStyle style="text-align:right;;"
attr KE.TempInside group Klima
attr KE.TempInside icon temp_inside
attr KE.TempInside room Device,Keller
attr KE.TempInside sortby 4
# KE.TempInside.1.TEMPERATURE und KE.TempInside.1.HUMIDITY sind readings des Gerätes
# dewpoint ist ein reading des geräte und Ergebnis folgender Definition: define TaupunktInnen dewpoint dewpoint KE.TempInside KE.TempInside.1.TEMPERATURE KE.TempInside.1.HUMIDITY dewpoint
# sorgt für eine Anzeige im Format: T: 20.0° H: 74% D: 15.1°
attr KE.TempInside stateFormat T: KE.TempInside.1.TEMPERATURE° H: KE.TempInside.1.HUMIDITY% D: dewpoint°
attr KE.TempInside statechannel 1
# einheitliche Darstellung mit einer Nachkommastelle
attr KE.TempInside stripnumber 1
Insbesondere die Anzeige im STATE finde ich gut gelöst - danke an zap für die Unterstützung dabei!
Beispiel einer Definition eines Bewegungsmelders:
define KE.Bewegung HMCCUDEV LEQ1081348 1
attr KE.Bewegung IODev HMCCU2
attr KE.Bewegung alias Bewegungsmelder Waschküche
attr KE.Bewegung ccuverify 2
attr KE.Bewegung devStateIcon noMotion:message_presence_disabled motion:motion_detector@orange
attr KE.Bewegung devStateStyle style="text-align:right;;"
attr KE.Bewegung event-on-change-reading .*
attr KE.Bewegung group Bewegung
attr KE.Bewegung icon message_presence
attr KE.Bewegung room Device,Keller
attr KE.Bewegung sortby 2
attr KE.Bewegung statechannel 1
# Der Datenpunkt 1.MOTION wird in STATE übernommen und kann wie gewohnt abgefragt werden
attr KE.Bewegung statedatapoint 1.MOTION
# Ersatz der Rückmeldungen des IODev (0/1, bzw. true/false) durch "sprechende" Werte für verschiedene Readings
attr KE.Bewegung substitute MOTION!(0|false):noMotion,(1|true):motion;;;;LOWBAT!(0|false):no,(1|true):yes
Beispiel eines
Homematic Dimmers:
- devStateIcon und statevals geht sicher besser, war mir aber nicht wichtig.
- Für die Einbindung in Homebridge (Siri) sind die Attribute room, genericDeviceType und homebridgeMapping notwendig (und natürlich die Installation von homebridge und homebridge-fhem vorher)
- Ich habe einen jQuery knob über 'control' als Steuerelement verwendet. Wenn man etwas anderes verwendet, muss das auch unter homebridgeMapping angepasst werden.
- stateFormat rechnet den 0.0 ... 1.0 Wert in eine schönere Anzeige mit 0 ... 100 um.
# Dimmer
define SZDimmer HMCCUDEV LEQ1338562
attr SZDimmer userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr SZDimmer IODev ccu2
attr SZDimmer ccureadingfilter (LEVEL|ON_TIME)
attr SZDimmer ccureadings 1
attr SZDimmer ccuverify 2
attr SZDimmer controldatapoint 1.LEVEL
attr SZDimmer devStateIcon Initialized:10px-kreis-gelb 0:li_wht_off:on 100:li_wht_on:off .*:dim43%:off
attr SZDimmer event-on-change-reading .*
attr SZDimmer genericDeviceType light
attr SZDimmer homebridgeMapping Brightness=control::S-Dimmer.LEVEL,factor=100
attr SZDimmer room Homekit
attr SZDimmer stateFormat { sprintf("%d", ReadingsVal($name,"S-Dimmer.LEVEL",0)*100) }
attr SZDimmer statechannel 1
attr SZDimmer statedatapoint LEVEL
attr SZDimmer statevals on:1.0,off:0.0,0:0.0,100:1.0
attr SZDimmer webCmd control
attr SZDimmer widgetOverride control:knob,min:0,max:1,step:0.01,skin:tron,thickness:.4,width:80,height:80,angleArc:180,angleOffset:-90,lineCap:round,fgColor:4175FF,bgColor:E3E3E3
Hope this helps.
Super, mein Dimmer funktioniert ;D
Aber fehlt da nicht noch das substitue-attr?
Das devIcon "schlägt" nicht an - es wird unabhängig vom Schaltzustand immer nur die ausgeschaltete Glühbirne angezeigt, ein Schalten durch Klicken auf das Symbol ist ebenfalls nicht möglich. Funktioniert das bei Dir?
Um den Dimmer nun aus fhem zu steuern, wie lauten die Befehle?
Auch zeigt der Dimmer nicht die Werte 0 .. 100 an, wie Du schreibst, sondern nur 0 .. 1 mit Nachkommastellen - siehe Anlage. Was mache ich da falsch?
hm ... wenn man natürlich den Device-Namen nicht ändert, dann kann's auch nicht funktionieren ... wie peinlich ::)
Ich bekomme allerdings immer noch keine %-Werte angezeigt, sondern nur 0 .. 1 mit Nachkommastellen.
Gibt es zu der halbkreis-/Kreisform des Widgets auch eine Gerade - so wie bei den pct-Einstellungen?
Zitat von: Yil am 23 Juni 2016, 08:55:19
hm ... wenn man natürlich den Device-Namen nicht ändert, dann kann's auch nicht funktionieren ... wie peinlich ::)
Ich bekomme allerdings immer noch keine %-Werte angezeigt, sondern nur 0 .. 1 mit Nachkommastellen.
Gibt es zu der halbkreis-/Kreisform des Widgets auch eine Gerade - so wie bei den pct-Einstellungen?
Der jQuery Knob zeigt leider in der Tat nur die Bruchwerte an.
Das war die einzige Möglichkeit, die ich gefunden habe, um den Dimmer steuern zu können.
Wird bewirkt durch: min:0,max:1,step:0.01
Hier wäre eben besagtes Feature von in HMCCU gut, die Skalierung angeben zu können. Dann kann man im Knob auch die vollen Prozentwerte nehmen.
Das devStateFormat ändert ja nur die Darstellung von STATE.
Und nein: Der Knob kann nur rund. :D Gerade kann der nicht.
Da mir rund zuviel war, hab ich ihn halbrund gemacht und um 90 Grad nach links gedreht: angleArc:180,angleOffset:-90
Einen substitute hab ich nicht.
Ok, danke. Zum Glück hat uns zap mit seiner Roadmap schon den Mund wässrig gemacht ;)
das beispei l zum rt-dn ist ja soweit schlüssig. in der regl interessiert aber nicht nur die zieltemp (temp selbst, eco, comfort) sondern auch das setzen des modes (auto, manu, boost) . bekomme ich beides in das eine device?
set <device> datapoitn 4.CONTROL_MODE 1 geht zum beispiel nicht um den mode zu schalten
EDIT: control_mode ist nur lesend! man kann also über
set <device> datapoint 4.BOOST_MODE true/false/1/on/off/[irgendweas hauptsache nicht leer] den boost aktivieren
set <device> datapoint 4.MANU_MODE 10.0 den mode + temp setzen
set <device> datapoint 4.AUTO_MODE true/false/1/on/off/[irgendweas hauptsache nicht leer] auto aktivieren
set <device> datapoint 4.COMFORT_MODE true/false/1/on/off/[irgendweas hauptsache nicht leer] comfort aktivieren
set <device> datapoint 4.LOWERING_MODE true/false/1/on/off/[irgendweas hauptsache nicht leer] eco aktivieren
im beispiel ist denke steht LOWBAT, das müsste aber BATTERY oder BATTERY_STATE sein oder? mit LOWBAT gibt bei mir zu mindets kein battery reading
der HM-LC-Sw1-Pl-2 bringt bei toggle einen fehler HMCCUDEV: az_sw_led Current device state doesn't match statevals
anbei eine beispielconfgi für die 4 schaltbaren Kanäle eine HM-LC-SW4-BA-PCB (4-Kanal-Funk-Schaltaktor für Batteriebetrieb).
Damit taucht er wie gewohnt (Module CUL_HM) in fhem auf
define az_sw4_Sw_01 HMCCUCHN az_sw4:1
attr az_sw4_Sw_01 IODev CCU01
attr az_sw4_Sw_01 ccureadings 1
attr az_sw4_Sw_01 room HM
attr az_sw4_Sw_01 statevals on:true,off:false
attr az_sw4_Sw_01 substitute STATE!1:on,0:off
define az_sw4_Sw_02 HMCCUCHN az_sw4:2
attr az_sw4_Sw_02 IODev CCU01
attr az_sw4_Sw_02 ccureadings 1
attr az_sw4_Sw_02 room HM
attr az_sw4_Sw_02 statevals on:true,off:false
attr az_sw4_Sw_02 substitute STATE!1:on,0:off
define az_sw4_Sw_03 HMCCUCHN az_sw4:3
attr az_sw4_Sw_03 IODev CCU01
attr az_sw4_Sw_03 ccureadings 1
attr az_sw4_Sw_03 room HM
attr az_sw4_Sw_03 statevals on:true,off:false
attr az_sw4_Sw_03 substitute STATE!1:on,0:off
define az_sw4_Sw_04 HMCCUCHN az_sw4:4
attr az_sw4_Sw_04 IODev CCU01
attr az_sw4_Sw_04 ccureadings 1
attr az_sw4_Sw_04 room HM
attr az_sw4_Sw_04 statevals on:true,off:false
attr az_sw4_Sw_04 substitute STATE!1:on,0:off
allerdings kann er noch kein on-for-timer, diese option wird aber beim HMCCUDEV des SW4 gelistet !? dafür toogle, was der zwischenstecker noch nicht kann.
Tach,
ich habe mir diese Woche eine CCU2 und einen Satz Homematic-IP Geräte gekauft, da ich für meinen defekten FHT80b keinen Ersatz mehr gefunden habe.
Hier nun meine Device-Infos und Beispielkonfigurationen (Nix ausgefeiltes, aber tut erst mal).
Heizungsthermostat HMIP-eTRV
Device-Info:
CHN 000393C991817A:0 BB_Ventilantrieb_c:0
DPT {b} HmIP-RF.000393C991817A:0.CONFIG_PENDING = false [E]
DPT {b} HmIP-RF.000393C991817A:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000393C991817A:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000393C991817A:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {b} HmIP-RF.000393C991817A:0.UNREACH = false [RE]
CHN 000393C991817A:1 BB_Ventilantrieb:1
DPT {i} HmIP-RF.000393C991817A:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000393C991817A:1.ACTUAL_TEMPERATURE = 26.200000 [RE]
DPT {b} HmIP-RF.000393C991817A:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000393C991817A:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000393C991817A:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000393C991817A:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000393C991817A:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000393C991817A:1.FROST_PROTECTION = false [RE]
DPT {f} HmIP-RF.000393C991817A:1.LEVEL = 0.000000 [RWE]
DPT {b} HmIP-RF.000393C991817A:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000393C991817A:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000393C991817A:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000393C991817A:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000393C991817A:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000393C991817A:1.SET_POINT_TEMPERATURE = 18.000000 [RWE]
DPT {b} HmIP-RF.000393C991817A:1.SWITCH_POINT_OCCURED = false [RE]
DPT {b} HmIP-RF.000393C991817A:1.VALVE_ADAPTION = [WE]
DPT {i} HmIP-RF.000393C991817A:1.VALVE_STATE = 4 [RE]
DPT {i} HmIP-RF.000393C991817A:1.WINDOW_STATE = 0 [WE]
Definition:
define BB_Ventilantrieb HMCCUDEV BB_Ventilantrieb 1
attr BB_Ventilantrieb IODev HM_CCU2
attr BB_Ventilantrieb ccureadingfilter (LOW_BAT|TEMPERATURE|VALVE|CONTROL)
attr BB_Ventilantrieb event-on-change-reading .*
attr BB_Ventilantrieb group Heizung und Temperatur
attr BB_Ventilantrieb icon hc_wht_regler
attr BB_Ventilantrieb room 03.Bitburg,60.HomeMatic
attr BB_Ventilantrieb stateFormat BB_Ventilantrieb.1.VALVE_STATE%
attr BB_Ventilantrieb statechannel 1
attr BB_Ventilantrieb statedatapoint 1.VALVE_STATE
attr BB_Ventilantrieb stripnumber 1
attr BB_Ventilantrieb substitute LOW_BAT!(0|false):ok,(1|true):low;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
Wandthermostat HMIP-WTH
Device-Info:
CHN 000313C9906C56:0 BB_Raumregler_c:0
DPT {b} HmIP-RF.000313C9906C56:0.CONFIG_PENDING = false [E]
DPT {b} HmIP-RF.000313C9906C56:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000313C9906C56:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000313C9906C56:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {b} HmIP-RF.000313C9906C56:0.UNREACH = false [RE]
CHN 000313C9906C56:1 BB_Raumregler:1
DPT {i} HmIP-RF.000313C9906C56:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000313C9906C56:1.ACTUAL_TEMPERATURE = 26.200000 [RE]
DPT {b} HmIP-RF.000313C9906C56:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000313C9906C56:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000313C9906C56:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000313C9906C56:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000313C9906C56:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000313C9906C56:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000313C9906C56:1.HUMIDITY = 51 [RE]
DPT {b} HmIP-RF.000313C9906C56:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000313C9906C56:1.PARTY_SET_POINT_TEMPERATU = 12.000000 [RE]
DPT {s} HmIP-RF.000313C9906C56:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000313C9906C56:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000313C9906C56:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000313C9906C56:1.SET_POINT_TEMPERATURE = 18.000000 [RWE]
DPT {b} HmIP-RF.000313C9906C56:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000313C9906C56:1.WINDOW_STATE = 0 [WE]
Definition:
define BB_Raumregler HMCCUDEV BB_Raumregler 1
attr BB_Raumregler userattr Typ Typ_map structexclude
attr BB_Raumregler IODev HM_CCU2
attr BB_Raumregler Typ Raumregler_oben
attr BB_Raumregler ccureadingfilter (ACTUAL_TEMPERATURE|ACTIVE_PROFILE|BOOST_MODE|SET_POINT|PARTY|HUMIDITY|WINDOW_STATE|LOW_BAT)
attr BB_Raumregler ccureadingformat name
attr BB_Raumregler controldatapoint 1.SET_POINT_TEMPERATURE
attr BB_Raumregler event-on-change-reading .*
attr BB_Raumregler group Heizung und Temperatur
attr BB_Raumregler icon hm-tc-it-wm-w-eu
attr BB_Raumregler room 03.Bitburg,60.HomeMatic
attr BB_Raumregler stateFormat measured-temp: BB_Raumregler.1.ACTUAL_TEMPERATURE
attr BB_Raumregler statechannel 1
attr BB_Raumregler statedatapoint ACTUAL_TEMPERATURE
attr BB_Raumregler stripnumber 1
attr BB_Raumregler substitute LOW_BAT!(0|false):ok,(1|true):low;;WINDOW_STATE!(true|1):Open,(false|0):Closed
Optischer Fensterkontakt HMIP-SWDO
Device-Info:
CHN 0000D3C99064B8:0 BB_Fensterkontakt:0
DPT {b} HmIP-RF.0000D3C99064B8:0.CONFIG_PENDING = false [E]
DPT {b} HmIP-RF.0000D3C99064B8:0.DUTY_CYCLE = false [RE]
DPT {8} HmIP-RF.0000D3C99064B8:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.0000D3C99064B8:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.0000D3C99064B8:0.OPERATING_VOLTAGE = 1.500000 [RE]
DPT {b} HmIP-RF.0000D3C99064B8:0.SABOTAGE = false [RE]
DPT {b} HmIP-RF.0000D3C99064B8:0.UNREACH = false [RE]
CHN 0000D3C99064B8:1 BB_Fensterkontakt:1
DPT {i} HmIP-RF.0000D3C99064B8:1.STATE = 0 [RE]
Definition:
define BB_Fensterkontakt HMCCUDEV BB_Fensterkontakt 1 readonly
attr BB_Fensterkontakt IODev HM_CCU2
attr BB_Fensterkontakt ccureadingfilter (ERROR_CODE|LOW_BAT|STATE)
attr BB_Fensterkontakt devStateIcon Open:fts_window_2w_tilt_l Closed:fts_window_2w
attr BB_Fensterkontakt event-on-change-reading .*
attr BB_Fensterkontakt group Türen und Fenster
attr BB_Fensterkontakt icon fts_window_2w_tilt
attr BB_Fensterkontakt room 03.Bitburg,60.HomeMatic
attr BB_Fensterkontakt statechannel 1
attr BB_Fensterkontakt statedatapoint 1.STATE
attr BB_Fensterkontakt substitute STATE!(0|false):Closed,(1|true):Open;;LOW_BAT!(0|false):ok,(1|true):not ok
Hat jemand eine HMIP-PSM mal zum laufen bekommen? Was muss ich da definieren? Komm da irgendwie nicht weiter :-(
Beispiel für eine Homematic IP Schaltsteckdose mit Energiemessung (HMIP-PSM)
define ST_Test HMCCUDEV ST-CCU-Name
attr ST_Test ccureadingfilter (STATE|CURRENT|POWER|^ENERGY_COUNTER)
attr ST_Test statechannel 3
attr ST_Test statevals on:1,off:0
attr ST_Test substitute STATE!true:on,false:off,1:on,0:off
attr ST_Test stripnumber 1
attr ST_Test event-on-change-reading .*
Achtung! HM-IP. Für automatische Aktualisierung muss im IO Device im Attribut rpcport der Port 2010 ergänzt werden. Danach den RPC-Server stoppen und wieder starten.
Ach cool - vielen Dank. So funktioniert das auch 8)
Hier mal noch meine Konfiguration für den Fensterkontakt HM-Sec-RHS. (abgewandelt von HM-Sec-SC)
# Fensterkontakt Arbeitszimmer
define AZ_Fenster_links HMCCUCHN AZ-FS-LI:1 readonly
# Uns interessieren nur einige Datenpunkte
attr AZ_Fenster_links ccureadingfilter (ERROR|LOWBAT|STATE)
# Zeigt einen grünen/gelben/roten Punkt an
attr AZ_Fenster_links devStateIcon closed:10px-kreis-gruen tilted:10px-kreis-gelb open:10px-kreis-rot
attr AZ_Fenster_links event-on-change-reading .*
# Werte der CCU in den Readings ersetzen
attr AZ_Fenster_links substitute STATE!(0|false):closed,(1|true):tilted,(2|true):open;;LOWBAT!(0|false):no,(1|true):yes
Zitat von: Yil am 23 Juni 2016, 07:59:05
Beispiel einer Definition eines Temperatur-Devices:
Habe jetzt dieses beispiel gefunden und wende es auf das HM-Gerät HM-WDS10-TH-O an.
Funktioniert alles super aber das Stateformat wird nicht gesetzt mit dem dewpoint. Ergebnis sieht so aus:
T: 15.2° H: 82% D: dewpoint°
:o why ?
dewpoint ist kein standardreading. dewpoint musst du erst definieren und auf die hmccu-readingsanpassen da diese nicht den standardreadings entsprechen so das es out-of box gehen würde (noch nicht, zap arbeitet ja bereits an einer neuen version) http://fhem.de/commandref.html#dewpoint
Also ich hab es versucht zu definieren wie in der commandref beschrieben. Aber das geht gar nicht. Mag sein, dass ich nur den rpcserver laufen habe und kein CUL definiert habe ?
Dann habe ich den dewpoint, wie im Beitragsbeispiel dargestellt (siehe Antwort #5 dieses Beitrages), auch versucht. leider auch ohne Erfolg. irgendwo habe ich bestimmt einen gedankenfehler :-(
Versucht habe ich:
define TaupunktInnen dewpoint dewpoint d_Test d_Test.1.TEMPERATURE d_Test.1.HUMIDITY dewpoint
define TaupunktInnen dewpoint dewpoint d_Test d_TEST:Temp_Feuchte_Aussen.1.TEMPERATURE d_TEST:Temp_Feuchte_Aussen.1.HUMIDITY dewpoint
define TaupunktInnen dewpoint dewpoint d_Test Temp_Feuchte_Aussen.1.TEMPERATURE Temp_Feuchte_Aussen.1.HUMIDITY dewpoint
:o :o :o
den rpc jedes mal als möglich grund aufzuführen weil du keinen cul hast ist überflüssig, da hat das eine eh nichts mit dem anderen zu tun....
du musst dewpoint nicht für jedes device definieren. einmal für devices mit standard readings (humidity/temprature) wenn du sowas hast
define depoint_std dewpoint dewpoint .*
und für hmccu devices mit den noch nicht so konformen readings
define depoint_hmccu dewpoint dewpoint .* .*.TEMPERATURE .*.HUMIDITY
das erste .* hesit für alle devicenamen
.*.TEMPERATURE um zu sagen nimm alle reading die irgendwas vorne haben (wie zb den devicenamen+ channel) und ein TEMPERATURE folgt als temperatur reading
.*.HUMIDITY um zu sagen nimm alle reading die irgendwas vorne haben (wie zb den devicenamen+ channel) und ein HUMIDITY folgt als luftfeuchte reading
ungetestet, habe kein temp/hum an hmccu
Zitat von: tuppertasse am 01 September 2016, 08:24:25
Habe jetzt dieses beispiel gefunden und wende es auf das HM-Gerät HM-WDS10-TH-O an.
Funktioniert alles super aber das Stateformat wird nicht gesetzt mit dem dewpoint. Ergebnis sieht so aus:
T: 15.2° H: 82% D: dewpoint°
:o why ?
HMCCU enthält eine Funktion zur Berechnung des Taupunkts. Die kannst Du in einem userreading verwenden. Beispiel:
attr xyz userReadings DEWPOINT {HMCCU_Dewpoint($name,"KL-GZ-TH.1.TEMPERATURE", "KL-GZ-TH.1.HUMIDITY","n/a")}
Du musst nur die Readings für Temperatur und Luftfeuchte austauschen.
So, nun habe ich es.
Allerdings wurde NICHT automatisch das reading dewpoint angelegt. Ich musste erst einmal manuell einfach irgendeine Zahl eintippern und schwups war sie dann sofort mit der richtigen Feuchte drin......komisch....das war wohl die ganze zeit das Problem
So, nun will ichs aber wissen :-)
Auf meinem Testsystem habe ich nun ein HM-Gerät zum experimentieren. Das läuft auch soweit ganz wenn man die Funktionalitäten erkennt :-)
Nun habe ich das angelegte Gerät natürlich direkt immer abgesprochen genau so wie es auch heisst.
Nun möchte ich natürlich später, dass die anderen HM-Geräte zumindest gleichen Typs oder gleichen Readings in die einzelnen Rubriken reingeschoben werden.
Als Beispiel dafür habe ich den Batteriestatus der Geräte mal genommen. Dazu habe ich unter ReadingsGroup den Status angelegt --> wie definiere ich das nun für alle - ist das da richtig?
####Für ein explizites Gerät
<Bezeichnung>,<Status>,<Zeit> Temp_Feuchte_Aussen.0.LOWBAT
####Für sämtliche Geräte mit Reading LOWBAT
<Bezeichnung>,<Status>,<Zeit> *:*.LOWBAT
Ich habe noch nicht genau verstanden, was Du vorhast. Sollen z.B. alle LOWBATs in einer Readinggroup auftauchen?
Zitat von: zap am 01 September 2016, 20:03:26
Ich habe noch nicht genau verstanden, was Du vorhast. Sollen z.B. alle LOWBATs in einer Readinggroup auftauchen?
Volltreffer !!!
Sowas ähnliches wollte ich auch mal machen. Allerdings in erweiterter Form, d.h. die Werte sollten logisch verknüpft (im Fall von LOWBAT "oder") werden. Die Readinggroup sollte signalisieren, wenn mindestens 1 Device LOWBAT meldet. Analog dazu mit offenen Türen Fenstern.
Habe ich mit readinggroup nicht hin bekommen und mir daher in myUtils eine Perl-Funktion dafür gebaut.
Hallo zap,
das hört sich interessant an. Magst Du Deine Lösung hier posten?
Danke und Grüße Christian
Mal sehen. Aus der Funktion ist mittlerweile ein FHEM Modul geworden. Das ist aber noch nicht soweit, dass man es veröffentlichen könnte. Habe auch schon mal überlegt, sowas direkt in HMCCU einzubauen ...
Die neue HMCCU Version hat momentan Prio.
Hat schon jemand eine Wetterstation von Homematic eingefügt?
Zitat von: zap am 02 September 2016, 08:07:58
Habe ich mit readinggroup nicht hin bekommen und mir daher in myUtils eine Perl-Funktion dafür gebaut.
Hab es schon hinbekommen aber ist schon ziemlich aufwendig für viele devices zu definieren (siehe Anhang) - gibt ja immer verschiedene Möglichkeiten je nach Device.
Eine Integration wäre schon klasse :-)liebguck :-)
Sehr cool, vielen Dank!
Nur eine Frage: Warum genau die "Virtuelle Gerätegruppe aus Wand- und Heizkörper-Thermostat"? Es reicht doch eigentlich, wenn ich das Wandthermostat einfüge, das kann Temperatur und Luftfeuchtigkeit loggen, offenbar sogar den Fensterstatus vom Fenstersensor, und die Temperatur kann ich darüber auch setzen, was wiederum an das Heizungsthermostat übermittelt wird, da die gekoppelt sind. Richtig?
@DaDiGi
Haben Homatic IP Geräte an der CCU2 in der Konstellation mit FHEM irgendwelche nennenswerten Vorteile gegenüber "normalen" Homeatic-Thermostaten, oder warum hast du dich für die entschieden?
VG
Eddie8
Sehr gut diese Code-Beispiele.
Neben der grundsätzlichen Erklärung, ist ein konkretes Beispiel meist der beste Einstieg für mich.
Frage: muss der rpcserver nach einer Programmänderung in fhem manuell neu gestartet werden, obwohl das attr rpcserver on # Automatisch gesetzt ist?
Danke
@Vorhand:
Also falls man über die fhem.cfg direkt editiert, dann wird der rpcserver sowieso neu gestartet automatisch.
Ich für meinen Teil mache es meistens über die KlickiBunti Oberfläche. Da brauchte ich bisher nie den rpcserver neu starten.
Wenn man aber komplexere neue define's einfügt, dann bitte sich meistens ein Neustart an --> ich starte dann aber komplett fhem neu.
rpcserver selber wird überwacht bei mir und automatisch neu gestartet wenn er sich beendet hat. Später implementiere ich noch Email Benachrichtigung dazu.
Zitat von: tuppertasse am 04 Oktober 2016, 21:14:39
@Vorhand:
Also falls man über die fhem.cfg direkt editiert, dann wird der rpcserver sowieso neu gestartet automatisch.
Da brauchte ich bisher nie den rpcserver neu starten.
... mehr oder weniger zuverlässig neugestartet müsste es heißen. es gitb offenbar stati da verträgt hmccu / der rpc keinen neustart von fhem (sei es über cfg-edit oder restart).
hatt ich gerade erst nach dem fhem in kurzer zeit 3-4 mal neugestartet / editiert wurde. danach musste ich den rpc per hand starten
Bei einem "shutdown restart" wird normalerweise auch der RPC-Server gestoppt und neu gestartet (wenn das Attribut rpcserver = on ist).
Da der RPC-Server versucht, sich beim Stoppen korrekt bei der CCU abzumelden, kann es in einigen Fällen zu einem Timeout kommen. Das äußert sich dann so, dass FHEM runterfährt, der oder die RPC-Server Prozesse aber noch auf die CCU warten.
Bei einem Update gehe ich normalerweise so vor:
1. RPC-Server manuell stoppen und warten, bis auch der Status auf "stopped" geht
2. Update ausführen
3. shutdown restart
Bei der Definition von Geräten kann der RPC-Server weiter laufen. Wenn es da irgendwelche Seiteneffekte geben sollte, bitte melden. Das ist so nicht gewollt.
@eddie8: Natürlich kann man über das Wandthermostat das Heizkörperthermostat mit steuern. Auch der Status der Fenster wird über den Datenpunkt WINDOW_OPEN_REPORTING mitgeteilt. Das mit den virtuellen Gerätegruppen ist hilfreich, wenn man in der CCU ein Gruppendevice bestehend aus Wandthermostat, Heizkörperthermostaten und ggf. Fenstern angelegt hat. Das virtuelle Device in FHEM steht dann für das Gruppendevice in der CCU. Dann kannst Du über dieses virtuelle Device auf alle Datenpunkte aller Geräte dieser Gruppe zugreifen. Bitte beachten: Das Attribut rpcport muss um den Wert 9292 ergänzt werden, damit die Readings der CCU Gruppen automatisch in FHEM aktualisiert werden.
Hier eine Beispieldefinition.
define HM_G_HZ_Bad HMCCUDEV G-BO-HZ group=KL-BO-HZ,KL-BO-TH
attr HM_G_HZ_Bad ccureadingfilter (^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|LOWBAT|^VALVE|^CONTROL|^WINDOW_OPEN)
attr HM_G_HZ_Bad cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HM_G_HZ_Bad controldatapoint 1.SET_TEMPERATURE
attr HM_G_HZ_Bad event-on-change-reading .*
attr HM_G_HZ_Bad eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr HM_G_HZ_Bad stateFormat T: KL-BO-TH.1.TEMPERATURE° H: KL-BO-TH.1.HUMIDITY% D: KL-BO-TH.2.SET_TEMPERATURE° P: DEWPOINT° V: KL-BO-HZ.4.VALVE_STATE% G-BO-HZ.1.CONTROL_MODE
attr HM_G_HZ_Bad statedatapoint 1.SET_TEMPERATURE
attr HM_G_HZ_Bad stripnumber 1
attr HM_G_HZ_Bad substitute LOWBAT!(0|false):no,(1|true):yes;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
attr HM_G_HZ_Bad userReadings DEWPOINT {HMCCU_Dewpoint($name,"KL-BO-TH.1.TEMPERATURE", "KL-BO-TH.1.HUMIDITY","n/a")}, LOWBAT_STATE:(KL-BO-TH.0.LOWBAT|KL-BO-HZ.0.LOWBAT) {HMCCU_AggReadings($name, "KL.*LOWBAT","and","no","yes")}, LOWBAT_COUNT:(KL-BO-TH.0.LOWBAT|KL-BO-HZ.0.LOWBAT) {HMCCU_AggReadings($name, "KL.*LOWBAT","cnt","yes","")}
attr HM_G_HZ_Bad webCmd control:Auto:Manu:Boost:on:off
attr HM_G_HZ_Bad widgetOverride control:slider,10,1,25
Wobei G-BO-HZ = CCU Gruppendevice, KL-BO-TH = Wandthermostat, KL-BO-HZ = Heizkörperthermostat
Sieht dann so aus wie im Anhang.
Hätte vielleicht noch jemand ein Beispiel für einen Funk-Wandtaster 2-fach (HM-PB-2-WM55-2)?
Zitat von: eddie8 am 10 Oktober 2016, 22:55:46
Hätte vielleicht noch jemand ein Beispiel für einen Funk-Wandtaster 2-fach (HM-PB-2-WM55-2)?
Ich habe einen HM-PB-2-WM55. Für jede der beiden Tasten habe ich ein HMCCUCHN Device definiert:
define meinetaste HMCCUCHN TasterKanal1
attr meinetaste ccureadingfilter (LOWBAT|UNREACH|PRESS)
attr meinetaste ccureadingformat datapoint
attr meinetaste statedatapoint PRESS_SHORT
attr meinetaste statevals press:true
attr meinetaste substitute 1|true:pressed
Wichtig ist, in diesem Fall nicht event-on-change-reading zu setzen sondern ggf. event-on-update-reading = .*
Oh klasse, besten Dank! Funktioniert schonmal, sehe entsprechende Readings:
2.PRESS_SHORT pressed 2016-10-11 23:30:42
state pressed 2016-10-11 23:30:42
Wenn ich jetzt noch lange drücken haben wollte, brauche ich dann weitere zwei devices und arbeite jeweils mit statedatapoint PRESS_SHORT?
Was ich nicht verstanden habe ist der letzte Satz:
Zitat von: zap am 11 Oktober 2016, 17:16:44
Wichtig ist, in diesem Fall nicht event-on-change-reading zu setzen sondern ggf. event-on-update-reading = .*
Ich nehme an da geht es dann um Events ausführen, soweit bin ich noch nicht, aber vielleicht könntest du da auch kurz helfen? Ich habe das Device WoZi_Schalter (eine Fritz!Dect Dose via FBDECT; funktioniert bereits in FHEM), diese will ich jetzt nur mit dem einen Taster einschalten (aus geht automatisch). Also irgendwie muss jetzt wohl folgendes passieren:
event-on-update-reading = press_short -> set WoZi_Schalter on
Theoretisch müsste man ja auch mehrere Dinge bei einem Tastendruck ausführen können, also etwa set WoZi_Schalter1 on && set WoZi_Schalter2 on ?
Wenn Du länger auf eine Taste drückst, sollte es ein PRESs_LONG geben. Du brauchst auch nicht unbedingt für jede Taste ein Device zu definieren. Es geht auch ein einzelnes HMCCUDEV Device.
Schalte mal den Event Monitor in FHEM ein, drücke eine Taste und beobachte die Meldungen. Auf die Meldungen kannst Du in einem Notify reagieren und entsprechende Set Befehle auslösen. Das sind dann aber FHEM Basics. Schau Dir mal das Wiki zu Notify etc an.
Hallo,
wie würden die Attribute aussehen, die es ermöglichen, die Helligkeit beim Zwischenstecker HM-LC-Sw1-Pl-2 auszulesen?
Danke und Gruß,
Kurt
Mit Attributen hat das erst mal nichts zu tun. Du definierst ein Device in FHEM mit dem Modul HMCCUDEV. Dann rufst Du für dieses Device "get deviceinfo" auf. Das zeigt Dir die Datenpunkte an. Du wirst bei einem Dimmer vermutlich einen Datenpunkt LEVEL finden, der die Helligkeit in Prozent enthält oder Werte zwischen 0 und 1.
Du kannst auch gleich "get update" ausführen. Dann werden die Datenpunkte in Readings geschrieben. Wenn der Helligkeits Datenpunkt z.B. 1.LEVEL ist, kannst Du mit "get datapoint 1.LEVEL" auch genau den Wert auslesen und in ein Reading speichern.
Lies einfach mal die Anleitung und diesen Thread. Da gibt es einige Beispiele auch für Attribute.
Hat schon jemand das Wanddisplay HM-PB-4Dis-WM-2 eingebunden bzw. die in der CCU angelegten Befehle per fhem zum laufen gebraucht?
Mit HMCCUDEV kann der Device leicht angelegt werden allerdings komme ich danach nicht wirklich voran.
Und per HMCCUCHN hat es bei mir leider auch nicht funktionert
Grüße
Wenn Dein Device in der CCU z.B. den Namen MYDISP hat und Dein IO bzw. HMCCU Device in FHEM CCU2 heißt, kannst Du Dir zunächst mal die Kanäle und Datenpunkte des Displays anzeigen lassen:
get CCU2 deviceinfo MYDISP
Da sollte dann eine Liste von Kanälen angezeigt werden, wobei jeder Kanal einen Datenpunkt PRESS_SHORT und PRESS_LONG haben sollte. Wenn Du nun ein HMCCUDEV für dieses Device definierst, sollten die Readings bei einem Tastendruck entsprechend aktualisiert werden. Wenn dem nicht so ist, setze erst mal das Attribut "event-on-update-reading" auf ".*". Wenn das auch nichts bringt, verknüpfe eine der Tasten des Displays mit einem Dummy-Programm der CCU. Manchmal werden die PRESS_XXX Events nur geschickt, wenn ein Kanal verknüpft ist.
Das müsste auch mit HMCCUCHN funktionieren. Da kannst Du dann jeden Kanal bzw. jede Taste in einem separaten FHEM-Device abbilden.
ok vielen Dank schon mal für die Antwort - leider bekomme ich es nicht hin...
Wenn wir bei den Namen MYDISP für das Wanddisplay und CCU2 für die CCU bleiben, dann erstelle ich erstmal den Device MYDISP durch
define myDispFhem HMCCUDEV MYDISP
nach einem
get deviceinfo MyDispFhem
bekomme ich für einen Kanal folgendes:
CHN NEQ0396554:3 Licht_Wohnbereich_Aus
DPT {b} BidCos-RF.NEQ0396554:3.PRESS_SHORT = [WE]
DPT {b} BidCos-RF.NEQ0396554:3.PRESS_LONG = [WE]
DPT {b} BidCos-RF.NEQ0396554:3.INSTALL_TEST = false [E]
DPT {b} BidCos-RF.NEQ0396554:3.PRESS_CONT = [E]
DPT {b} BidCos-RF.NEQ0396554:3.PRESS_LONG_RELEASE = [E]
--> die Sache mit dem kurzen und dem langen Tastendruck ist gewollt - nicht wundern.
Mit einem
set MyDisplayFhem datapoint 3.PRESS_SHORT 1
führ er auch aus was ich möchte.
Den Tastendruck jedoch als eigenen Device zu erstellen schaffe ich nicht - wobei ich eher glaube dass es an falschen Eingaben meinerseits liegt
Zitat von: faerberma46466 am 27 Oktober 2016, 09:49:25
Den Tastendruck jedoch als eigenen Device zu erstellen schaffe ich nicht - wobei ich eher glaube dass es an falschen Eingaben meinerseits liegt
Entweder so
define meinetaste HMCCUCHN Licht_Wohnbereich_Aus
Oder so
define meinetaste HMCCUCHN NEQ0396554:3
Eine Taste entspricht einem Kanal. Daher musst Du HMCCUCHN und den Kanalnamen oder die Kanaladresse verwenden. Beim "Drücken" der Taste entfällt dann die Angabe der Kanalnummer:
set meinetaste datapoint PRESS_SHORT 1
Oder (ungetestet)
attr meinetaste statedatapoint PRESS_SHORT
attr statevals press:1
set meinetaste press
Interessant das alles!
Sind die HM IP Geräte auch mit dem HM LAN zu betreiben ?
Ich hab' bisher nichts zur Kompatibilität gelesen. Vom Prinzip sollte das doch gehen ?
Der optische Fenster-Kontakt wäre interessant.
Zitat von: Danny am 29 Oktober 2016, 15:59:57
Interessant das alles!
Sind die HM IP Geräte auch mit dem HM LAN zu betreiben ?
Ich hab' bisher nichts zur Kompatibilität gelesen. Vom Prinzip sollte das doch gehen ?
Nein, nur mit der HM-IP Zentrale oder einer CCU.
Zitat
Der optische Fenster-Kontakt wäre interessant.
Gerade bei dem gibt es eigentlich keinen Unterschied zwischen dem HM-IP und dem Bidcos Gerät. Ich finde die deutlich kleineren HM-IP Steckdosen viel interessanter.
Zitat von: zap am 29 Oktober 2016, 16:22:09
Nein, nur mit der HM-IP Zentrale oder einer CCU.
Du meinst den 'Home Control Access Point' (http://www.elv.de/homematic-ip.html?partnerid=445838&affmt=text&affmn=1) ?Oder CCU2, nicht CCU1!Das ist aber auch eine Kostenfrage und vor allem die 'Cloud-Anbindung' will ich nicht für meine Heimautomatisierung.
Zitat von: zap am 29 Oktober 2016, 16:22:09Gerade bei dem gibt es eigentlich keinen Unterschied zwischen dem HM-IP und dem Bidcos Gerät. Ich finde die deutlich kleineren HM-IP Steckdosen viel interessanter.
Mit 'Bidcos Gerät' meinst Du den 'alten' Magnet-Kontakt ?Der war mir zu 'globig' ... daher das Interesse am HM-IP Fensterkontakt.
Nein, auch für die "normale" Homematic mit BidCos (die Du z.B. mit CUL_HM ansteuerst) gibt es einen optischen Fensterkontakt, der genauso aussieht wie der HM-IP. Ich habe davon ca. 10 im Einsatz.
Die CCU2 hat keine Cloud-Verbindung.
Zitat von: zap am 27 Oktober 2016, 13:43:47
set meinetaste datapoint PRESS_SHORT 1
Oder (ungetestet)
attr meinetaste statedatapoint PRESS_SHORT
attr statevals press:1
set meinetaste press
Funktioniert wunderbar -vielen Dank!!
Eine Frage hätte ich noch (wobei die eher generell ist).
Ich versuche gerade ein notify zu erstellen, bspw.
define notTest notify hmTreppenhausLicht:.* set hmFlurobenLicht on
Das funktioniert auch wunderbar wenn ich das TreppenhausLicht via FHEM oder FTUI schalte, aber sofern ich es ganz "normal" über den Lichtschalter oder über das Homematic Interface schalte - dann passiert nichts. Auch im Event-Monitor wird nichts erkannt.
Ist das denn normal so oder kann FHEM auch irgendwie mithören was direkt über die CCU läuft?
Hast Du in FHEM event-on-change-reading gesetzt? Das solltest Du nicht und stattdessen event-on-update-reading auf .* setzten.
Dann prüfe mal, ob die entsprechenden PRESS_xxx Readings in FHEM aktualisiert werden, wenn Du den Schalter drückst.
Zitat von: zap am 01 November 2016, 21:11:17
Hast Du in FHEM event-on-change-reading gesetzt? Das solltest Du nicht und stattdessen event-on-update-reading auf .* setzten.
Dann prüfe mal, ob die entsprechenden PRESS_xxx Readings in FHEM aktualisiert werden, wenn Du den Schalter drückst.
Das habe ich gemacht -allerdings kommt nichts an.
Habe aber auch festgestellt dass es bei den Tür-/Fensterkontakten genauso ist - also keine Aktualisierung in FHEM.
Eben habe ich die nochmal neu angelegt, genau nach dem Code von Seite 1 (bis auf event-on-update, bzw habe ich beides versucht) --> Leider kein Erfolg
den RPC Server hast Du gestartet?
Der läuft, klar.
Aber ich hatte sowieso immer ein paar Probleme mit meinem raspberry, deshalb werd ich dieses Wochenende auf den Pi 3 umziehen und dann alles von Grund aus nochmal anständig machen.
Vll klappt es ja dann besser.
Trotzdem vielen Dank für die Hilfe
___________________________________________
EDIT:
Ich habe fhem auf einem neuen Pi aufgesetzt und es werden jetzt alle aktuellen Zustände und vorallem Zustandsänderungen von Fensterkontakten, Schaltern etc erkannt --> lag demnach wirklich nur an mir.
Vielen Dank nochmal für die geduldige Hilfe
Mal ne Frage in die Runde: wozu dient dieses Gerätegruppe?
Zudem finde ich eine solche Gruppe auf der CCU2 nicht - obwohl ich 2 Kombinationen aus Heizung und Wandthermostat habe.
Geh mal im CCU2 WebUI auf "Einstellungen > Gruppen". Damit legt man virtuelle Geräte (Gruppen) an. Wenn man einer Gruppe Geräte hinzufügt, sorgt die CCU automatisch für die Verknüpfung der Geräte untereinander.
Anbei ein Beispiel von einer Heizungsgruppe mit Thermostaten und Fenstersensoren.
Ist ja lustig :D Und ich mach mir die Mühe, alle Geräte manuell miteinander zu verbinden.
Aktuell habe ich je einen Festerkontakt, einen Ventilantrieb und ein Wandthermostat manuell verknüpft. Trotzdem tauchen die nicht in der Gruppe auf. Und nachträglich erstellen kann ich die Gruppe nicht - die bereits verknüpften Geräte können nicht noch einmal verknüpft werden (außer - ich entferne die Verknüpfungen).
Daher noch einmal die Frage: was bringt eine solche Gruppe - was kann ich damit steuen? Du wolltest ein Beispiel anhängen?
Ich habe Dir im Hauptthread ein Beispiel angehängt. Hier noch 2 Bilder, wie das in der CCU und in FHEM aussieht. Ersparen tust Du Dir eben die manuelle Verknüpferei. Die Gruppe verhält sich wie ein richtiges (nur eben virtuelles Gerät) mit Kanälen, Datenpunkten usw
cool, danke - so hab ich das mittlerweile auch - auch wenn etwas mühsamer ;)
Hi,
hat jemand ein Beispiel für einen HM-LC-SW4-DR ?
Ich habe es mit dem Beispiel für den HM-LC-SW4-BA-PCB probiert.
Das Schalten der Kanäle funktioniert auch. Ich bekomme aber leider den Status nicht zurück.
Gruß Andreas
Bitte zeige mal Deine Gerätedefintion. Werden keine Datenpunkte / Readings aktualisiert oder nur von diesem Device bzw. läuft der RPC-Server?
Hallo,
die anderen Devices funktionieren. RPC Server Läuft.
define HM_Aussenst HMCCUCHN AussenSt
attr HM_Aussenst IODev CCU2
attr HM_Aussenst ccureadingformat datapoint
attr HM_Aussenst ccureadings 1
attr HM_Aussenst event-on-change-reading .*
attr HM_Aussenst event-on-update-reading .*
attr HM_Aussenst room HM,Schalter
attr HM_Aussenst statedatapoint STATE
attr HM_Aussenst statevals on:true,off:false
attr HM_Aussenst substitute STATE!true:on,false:off
Gruß Andreas
D.h. "AussenSt" ist der Name eines Kanals des HM-LC-SW4-DR? Dann passt die Definition.
Problematisch könnte die Kombi event-on-change-reading und event-on-update-reading sein. Ich würde immer nur eines von beiden verwenden. Wenn ein Schalter true/1 und false/0 liefert (ist der Fall, wenn es einen STATE Datenpunkt gibt) solltest Du "event-on-change-reading" verwenden. Bei Schaltern die Datenpunkte PRESS_xxx haben und kein STATE, nimm "event-on-update-reading" (denn PRESS_xxx liefert immer nur true/1).
BTW: ccureadings = 1 ist Default, kannst Du Dir also sparen.
Hat sich auf CCU Seite etwas bei dem Gerät geändert? Im Zweifel setzte mal einen Befehl "get CCU2 devicelist" ab. Das synchronisiert alle Gerätedefinitionen zwischen FHEM und der CCU. Danach das Device in FHEM neu definieren.
Hallo,
danke für die Tips. Ich werde es heute Abend probieren und mich dann melden.
Gruß Andreas
Hallo,
hier also ein funktionierendes Beispiel für den HM-LC-Sw4-DR:
define HM_WzFensterSt HMCCUCHN WZStSSchrSt
attr HM_WzFensterSt IODev CCU2
attr HM_WzFensterSt ccureadings 1
attr HM_WzFensterSt room HM,Schalter
attr HM_WzFensterSt statevals on:true,off:false
attr HM_WzFensterSt substitute STATE!1:on,0:off
define HM_LichterkKugel HMCCUCHN LichterketteKugel
attr HM_LichterkKugel IODev CCU2
attr HM_LichterkKugel ccureadings 1
attr HM_LichterkKugel room HM,Schalter
attr HM_LichterkKugel statevals on:true,off:false
attr HM_LichterkKugel substitute STATE!1:on,0:off
define HM_OFensterStHallow HMCCUCHN FensterStObenHallow
attr HM_OFensterStHallow IODev CCU2
attr HM_OFensterStHallow ccureadings 1
attr HM_OFensterStHallow room HM,Schalter
attr HM_OFensterStHallow statevals on:true,off:false
attr HM_OFensterStHallow substitute STATE!1:on,0:off
define HM_Aussenst HMCCUCHN AussenSt
attr HM_Aussenst IODev CCU2
attr HM_Aussenst ccureadings 1
attr HM_Aussenst room HM,Schalter
attr HM_Aussenst statevals on:true,off:false
attr HM_Aussenst substitute STATE!1:on,0:off
Die Steuerung der Aktoren funktionierte noch. Die Rückmeldungen kamen aber nur für HMCCUDEV nicht für HMCCUCHN.
Letztendlich hing es an einem Fhem Neustart nach dem Firmwareupdate in der CCU.Lässt sich da eigentlich ein Reconnet automatisieren? Watchdog?
Ansonsten vielen Dank für das großartige Modul.
Gruß Andreas
Schön dass es funktioniert. Ich nehme das mal in die HMCCUConf.pm auf.
Tja, das mit dem Neustart der CCU ist so ein Problem. Grundsätzlich gibt es 2 Möglichkeiten:
1) HMCCU schickt der CCU per RPC ein PING. Darauf antwortet sie entsprechend oder auch nicht. Problem: Das Ping Intervall muss sehr kurz sein, damit auch jeder Neustart der CCU erkannt wird.
2) Man versucht der CCU beizubringen, jeden Neustart an FHEM zu melden. Das finde ich schon deutlich verlässlicher. Allerdings setzt das voraus, dass auf CCU Seite ein Script installiert wird.
Mal sehen ... ich schleppe das Thema schon ziemlich lange mit rum. Wird Zeit für eine Lösung.
Hi zusammen,
hat jemand mal ein Beispiel eines Rauchmelders und einer Rauchmeldergruppe? Mich würde interessieren, ob man die Rauchmeldergruppe via Teamcall o.ä. direkt ansteuern kann.
VG Yil
ich habe einen rauchmelder, bin aber was die einbindung in fhem angeht auch etwas, naja, ratlos
sd-team:
Internals:
DEF whg_sd_team
IODev CCU01
NAME whg_sd_team
NR 101
STATE ok
TYPE HMCCUDEV
ccuaddr *LTK0017293
ccudevstate Active
ccuif BidCos-RF
ccuname whg_sd_team
ccutype HM-Sec-SD-Team
channels 2
statevals devstate
Readings:
2016-12-02 12:22:45 state ok
2016-12-02 12:22:45 whg_sd_team.1.STATE ok
Attributes:
DbLogExclude .*
IODev CCU01
ccureadings 1
room HM
statechannel 1
statedatapoint 1.STATE
substitute STATE!(false):ok,(true):alert
Internals:
DEF whg_sd
IODev CCU01
NAME whg_sd
NR 100
STATE Bat: ok
TYPE HMCCUDEV
ccuaddr LTK0017293
ccudevstate Active
ccuif BidCos-RF
ccuname whg_sd
ccutype HM-Sec-SD
channels 2
statevals devstate
Readings:
2016-11-24 18:13:56 state Initialized
2016-12-02 12:27:15 whg_sd.0.CONFIG_PENDING false
2016-12-02 12:27:15 whg_sd.0.DEVICE_IN_BOOTLOADER false
2016-12-02 12:27:15 whg_sd.0.DUTYCYCLE false
2016-12-02 12:27:15 whg_sd.0.LOWBAT ok
2016-12-02 12:27:15 whg_sd.0.RSSI_DEVICE 1
2016-12-02 12:27:15 whg_sd.0.RSSI_PEER 205
2016-12-02 12:27:15 whg_sd.0.STICKY_UNREACH false
2016-12-02 12:27:15 whg_sd.0.UNREACH false
2016-12-02 12:27:15 whg_sd.0.UPDATE_PENDING false
2016-12-02 12:27:15 whg_sd.1.STATE false
Attributes:
DbLogExclude .*
IODev CCU01
ccureadings 1
room HM
stateFormat Bat: whg_sd.0.LOWBAT
statechannel 0
substitute LOWBAT!(0|false):ok,(1|true):not ok
mit den cul_hmmodulen konnte man auch per befehl einen alarm auslösen. mit hmccu habe ich dies noch nicht hinbekommen
Das explizite Einschalten des Alarms ist mit HMCCU nicht möglich, da das auch mit der CCU nicht geht. Wenn es andere Probleme mit Rauchmeldern gibt, bitte genauer beschreiben.
Konkrete Frage zu den Rauchmeldern: wie funktioniert der Teamcall, der mit Dem HMLAN-Adapter möglich war?
und: wie sieht eine gute, auf HMCCU angepasste Definition eines Rauchmelders und einer Rauchmeldergruppe aus. Würde man das auch so machen, dass man die Geräte zuerst in der CCU gruppiert und dann die Gruppe in FHEM definiert?
Hallo zusammen,
hier ein Beispiel wie ich den Dimmer HM-LC-Dim1T-Pl-2 eingebunden habe inkl. HomeKit (Beispiele aus mehreren Threads zusammengetragen):
# Wohnzimmer: Stehlampe - Dimmer
define CCU.Wohnzimmer.Stehlampe HMCCUDEV KEQxxxxxxxx 1
attr CCU.Wohnzimmer.Stehlampe IODev ccu
attr CCU.Wohnzimmer.Stehlampe alias Wohnzimmer Stehlampe
attr CCU.Wohnzimmer.Stehlampe ccureadingfilter (LEVEL)
attr CCU.Wohnzimmer.Stehlampe ccureadingformat datapoint
attr CCU.Wohnzimmer.Stehlampe ccureadings 1
attr CCU.Wohnzimmer.Stehlampe ccuscaleval LEVEL:0:1:0:100
attr CCU.Wohnzimmer.Stehlampe ccuverify 2
attr CCU.Wohnzimmer.Stehlampe controldatapoint 1.LEVEL
attr CCU.Wohnzimmer.Stehlampe devStateIcon {Color::devStateIcon($name,"dimmer",undef,"state")}
attr CCU.Wohnzimmer.Stehlampe devStateStyle style="text-align:right"
attr CCU.Wohnzimmer.Stehlampe event-on-change-reading .*
attr CCU.Wohnzimmer.Stehlampe group Licht
attr CCU.Wohnzimmer.Stehlampe homebridgeMapping On=state,values=on:1;;off:0,delay=true Brightness=control
attr CCU.Wohnzimmer.Stehlampe icon light_floor_lamp
attr CCU.Wohnzimmer.Stehlampe room Homekit
attr CCU.Wohnzimmer.Stehlampe statechannel 1
attr CCU.Wohnzimmer.Stehlampe statedatapoint 1.LEVEL
attr CCU.Wohnzimmer.Stehlampe stripnumber 2
attr CCU.Wohnzimmer.Stehlampe substexcl control
attr CCU.Wohnzimmer.Stehlampe substitute LEVEL!#0-0:off,#1-100:on
attr CCU.Wohnzimmer.Stehlampe webCmd control:on:off
attr CCU.Wohnzimmer.Stehlampe widgetOverride control:slider,0,10,100
attr CCU.Wohnzimmer.Stehlampe statevals on:1.0,off:0.0,0:0.0,100:1.0
Es gibt einen kleinen Schönheitsfehler:
Beim Ändern des Dimmlevels springt der Regler immer erstmal wild auf andere Werte (z.B. ursprünglich 20% - dann Schieber gestellt auf 50%: Ergebnis: Lampe dimmt auf 50%, dann wieder zurück auf z.B. 22% und dann final auf 50% .... ist auch nicht so schlimm, weil das Endergebnis ja passt, allerdings etwas unschön, wenn die Lampe immer aufflackert... - hab dies versucht mit Delay zu lösen, bringt aber leider nichts ..
viele Grüße,
Texel
Zitat von: Yil am 04 Dezember 2016, 00:52:44
Konkrete Frage zu den Rauchmeldern: wie funktioniert der Teamcall, der mit Dem HMLAN-Adapter möglich war?
hat er ja gesagt, garnicht. per ccu kannst du weder über das team-device noch über den melder selber was schalten. also auch keinen teamcall oder testalarm.
wenn du das willst musst du zurück zu cul_hm.
Zitatwie sieht eine gute, auf HMCCU angepasste Definition eines Rauchmelders und einer Rauchmeldergruppe aus.
wie in meinem beispiel würde ich alle melder selbst + das teamdevice definieren. auf grund der nicht schaltbarkeit bleibt dir also als sinnvolle auswertung bei dem melder selbst nur datapoint 0.LOWBAT ( und evtl. noch 1.STATE wobei bei alarm der team auch auf alarm geht und alle anderen melder auch). beim teamdevice nur 1.STATE.
Moin,
hat schon mel einer einen HM-OU-CFM-TW angebunden und kann ein Beispiel geben?
Gruß
Dantenpunkte sind hier beschrieben:
http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf
Einfach nach dem Typ suchen. Leider habe ich keine Infos, was man in den Datenpunk SUBMIT schreiben muss, damit was passiert.
Ich glaube, Du kannst die Angaben aus der CCU bei den Geräteeinstellungen einfach an den DP SUBMIT schicken, also z.B.
set mygong datapoint 1.SUBMIT Angaben
bzw. das gleiche mit 2.SUBMIT
Hallo!
Ich bin gerade dabei testweise einige Geräte auf HMCCU umzuziehen
Ich hab bereits erfolgreich ein Wandthermostat und ein Heizkörperthermostat eingebunden was gut funktioniert hat.
Nun hänge gerade an der virtuellen Gruppe.
Zitat von: zap am 25 März 2016, 16:08:13
Virtuelle Gerätegruppe aus Wand- und Heizkörper-Thermostat
# Der RPC-Server aktualisiert keine Gruppen-Devices. Daher werden hier die Datenpunkte der echten Devices auf die der Gruppendevices gemappt
attr HM_G_AZ_HZ mapdatapoints KL-AZ-TH:2.SET_TEMPERATURE=G-AZ-HZ:1.SET_TEMPERATURE,KL-AZ-TH:2.CONTROL_MODE=G-AZ-HZ:1.CONTROL_MODE
Bei mir gibt es kein Attribut mapdatapoints,
per "get defaults" bekomme ich nur:
eventMap = /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
cmdIcon = Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
substexcl = control
stripnumber = 1
controldatapoint = 1.SET_TEMPERATURE
substitute = LOWBAT!(0|false):no,(1|true):yes;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
widgetOverride = control:slider,3.5,0.5,30.5,1
ccureadingfilter = (^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|LOWBAT$|^VALVE|^CONTROL|^WINDOW_OPEN)
webCmd = control:Auto:Manu:Boost:on:off
statedatapoint = 1.SET_TEMPERATURE
Mein Device sieht so aus:
DeviceOverview
Internals
CFGFN
DEF G_HZ_2OG_AZ group=HM-CC-RT-DN_MEQ1579352,HM-TC-IT-WM-W-EU_2OG_AZ
IODev hm_ccu
NAME HM_G_2OG_AZ_HZ
NR 7608
STATE Initialized
TYPE HMCCUDEV
ccuaddr INT0000001
ccudevstate Active
ccugroup MEQ1579352,NEQ0938382
ccuif VirtualDevices
ccuname G_HZ_2OG_AZ
ccutype HM-CC-VG-1
channels 3
statevals devstate
Hab ich irgendwo nen Fehler oder wie bekomme ich das attrib?
Danke und Gruß
Sven
Da hast Du eine alte Doku erwischt. Das Attribut mapdatapoint gibt es nicht mehr, da der RPC-Server mittlerweile auch die Datenpunkte von Gruppen aktualisieren kann. Dazu ergänzt Du einfach beim I/O Device das Attribut rpcport um den Wert 9292 und startest den RPC-Server neu.
Ich habe mir eine CCU2 und eine HM-PBI-4-FM Funk-Tasterschnittstelle 4fach gekauft und mittels HMCCU eingebunden:
Internals:
CFGFN
DEF NEQ... readonly defaults
IODev myCCU
NAME EZ_Vierfachtaster
NR 683
STATE Initialized
TYPE HMCCUDEV
ccuaddr NEQ...
ccudevstate Active
ccuif BidCos-RF
ccuname HM-PBI-4-FM NEQ...
ccutype HM-PBI-4-FM
channels 5
statevals readonly
Readings:
2016-12-10 21:28:24 HM-PBI-4-FM_NEQ....0.CONFIG_PENDING 0
2016-12-10 22:12:13 HM_Taster_01.INSTALL_TEST 1
2016-12-10 21:25:54 HM_Taster_01.PRESS_CONT 1
2016-12-10 21:25:54 HM_Taster_01.PRESS_LONG 1
2016-12-10 22:12:13 HM_Taster_01.PRESS_SHORT 1
2016-12-10 22:12:03 HM_Taster_02.INSTALL_TEST 1
2016-12-10 22:12:03 HM_Taster_02.PRESS_SHORT 1
2016-12-10 22:09:18 HM_Taster_03.INSTALL_TEST 1
2016-12-10 22:09:18 HM_Taster_03.PRESS_SHORT 1
2016-12-10 22:09:33 HM_Taster_04.INSTALL_TEST 1
2016-12-10 22:09:33 HM_Taster_04.PRESS_CONT 1
2016-12-10 22:09:28 HM_Taster_04.PRESS_LONG 1
2016-12-10 21:28:54 HM_Taster_04.PRESS_SHORT 1
2016-12-10 20:59:33 state Initialized
Attributes:
IODev myCCU
room Homematic
Allerdings bekomme ich es nicht hin ein funktionierendes DOIF zu erstellen, sodass die einzelnen Tasten Lampen ein- bzw. ausschalten.
([HM_Taster_01] =~ "SHORT") (set AZ_Deckenleuchte on) DOELSEIF ([HM_Taster_02] =~ "SHORT") (set AZ_Deckenleuchte off)
führt nicht zum gewünschten Ergebnis.
Wo liegt mein Fehler? Ich schätze, dass meine Adressierung im DOIF falsch ist, also der Teil "[HM_Taster_01] =~ "SHORT"", aber ich verstehe leider nicht, wie es richtig heißen müsste.
Kann mir bitte jemand auf die Sprünge helfen? Vielen Dank! :)
Vielleicht ist Dir das eine Hilfe. Ich habe einen HM-PB-2-WM55-2 (2 Schalter) mit folgender Definition:
Internals:
DEF <sn> 1
IODev HMCCU2
NAME EG.LichtSchalter
NR 1219
STATE Initialized
TYPE HMCCUDEV
ccuaddr MEQ1847634
ccudevstate Active
ccuif BidCos-RF
ccuname EG.LichtSchalter
ccutype HM-PB-2-WM55-2
channels 3
statevals devstate|on|off
Readings:
2016-12-11 14:29:19 0.LOWBAT no
2016-12-11 14:41:45 1.PRESS_LONG on
2016-12-11 14:41:46 1.PRESS_LONG_RELEASE on
2016-12-11 14:35:28 1.PRESS_SHORT on
2016-12-11 14:36:57 2.PRESS_LONG on
2016-12-11 14:36:58 2.PRESS_LONG_RELEASE on
2016-12-11 14:35:31 2.PRESS_SHORT on
2016-12-10 11:39:52 state Initialized
Attributes:
IODev HMCCU2
ccureadingfilter (LOWBAT|PRESS_SHORT|PRESS_LONG)
ccureadingformat datapoint
devStateIcon .*:refresh
devStateStyle style="text-align:right;"
event-on-update-reading .*
group Schalter
icon taster
room Device,Esszimmer
statechannel 1
statevals on:true,off:false
substitute LOWBAT!(0|false):no,(1|true):yes;true:on,false:off,1:on,0:off
webCmd :
Schau Dir mal die Attribute an - die vereinfachen einiges. Zum Schalten habe ich mir verschiedene notify gebaut, die auf die Schaltzustände reagieren und abfragen, ob sie on oder off sind (vgl. Einstellungen bei attr substitute).
Das notify sieht dann so aus:
define Schalter.A.Short notify EG.LichtSchalter.1.PRESS_SHORT:.*|EG.LichtSchalter.1.PRESS_LONG:.* <Befehl>
Das Pipezeichen kopmbiniert die Abfrage für kurzen und langen Tastendruck. In einem DOIF müsste das dann etwa so aussehen:
define DOIF_Schalter DOIF ([EG.LichtSchalter.1.PRESS_SHORT:.*] eq 'on') (<Befehl>) ... usw
Vielen Dank für Deine Hilfestellung!
Ich habe einige der Attribute übernommen und den Taster umbenannt (EZ_Taster statt EZ_Vierfachtaster):
Internals:
DEF SN defaults
IODev myCCU
NAME EZ_Taster
NR 96
STATE Initialized
TYPE HMCCUDEV
ccuaddr SN
ccudevstate Active
ccuif BidCos-RF
ccuname HM-PBI-4-FM SN
ccutype HM-PBI-4-FM
channels 5
statevals devstate|on|off
Readings:
2016-12-11 17:23:47 1.PRESS_SHORT on
2016-12-11 17:22:57 2.PRESS_SHORT on
2016-12-11 17:07:20 3.PRESS_SHORT on
2016-12-11 16:54:33 4.PRESS_SHORT 1
Attributes:
IODev myCCU
ccureadingfilter (LOWBAT|PRESS_SHORT|PRESS_LONG)
ccureadingformat datapoint
event-on-update-reading .*
icon taster
room Homematic
statechannel 1
statevals on:true,off:false
substitute LOWBAT!(0|false):no,(1|true):yes;true:on,false:off,1:on,0:off
Damit funktioniert folgendes Notify:
EZ_Taster.2.PRESS_SHORT:.* set AZ_Deckenleuchte off
:D
Das entsprechende DOIF funktioniert allerdings nicht:
([EZ_Taster.1.PRESS_SHORT:.*] eq "on") (set AZ_Deckenleuchte on) DOELSEIF ([EZ_Taster.2.PRESS_SHORT:.*] eq "on") (set AZ_Deckenleuchte off)
Außerdem ist mir die Funktion des Attributs "statechannel 1" nicht klar. Welchen Channel lege ich hier wofür fest? Das Device hat ja insgesamt 5 Channels, von denen 4 (1 bis 4) den Tastern entsprechen.
Noch eine Idee, wie ich das DOIF zum Laufen bekomme?
Das Attribut statechannel gibt es noch, ist aber veraltet. Stattdessen sollte man das Attribut statedatapoint verwenden. Bei HMCCUCHN Devices enthät das nur den Namen des Datenpunktes, der in STATE übernommen werden soll. Bei HMCCUDEV Devices entsprechend die Kanalnummer UND den Datenpunktnamen durch einen Punkt getrennt (z.B. 1.STATE).
Bei den Mehrfachtastern ist das Problem, dass sie mehrere gleichberechtigte Kanäle haben, die alle einen Datenpunkt STATE oder entsprechend PRESS_SHORT oder PRESS_LONG haben. Ich würde daher empfehlen, bei diesen Teilen für jeden Schalt-/Tastkanal ein separates HMCCUCHN Device in FHEM zu definieren. Damit hast Du die einzelnen Kanäle klar voneinander getrennt.
Das löst aber nicht unbedingt Dein Problem, dass DOIF nicht funktioniert während Notify geht. Ich persönlich lasse die Finger von DOIF. Hat bei mir schon zu viele graue Haare verursacht ;-)
Vielen Dank für die Erklärung!
In etwa so hatte statechannel/statedatapoint verstanden, ich wusste nur eben bei dem besagten Mehrfachtaster nichts damit anzufangen. Dann werde ich vermutlich noch auf HMCCUCHN-Definitionen umsatteln.
Das DOIF-Problem hat sicher noch etwas mit der Syntax des Devices zu tun, also dem "([EZ_Taster.1.PRESS_SHORT:.*] eq "on")". Ich weiß nur nicht, was ich noch ausprobieren könnte.
Mein größeres Problem ist gerade, dass der Mehrfachtaster anscheinend nicht in die vorgesehen UP-Dose passt, da die Verkabelung dort schon zu viel Platz wegnimmt...
Hallo!
Ich hänge an der Definition meiner HM-CC-TC Funk-Wandthermostate.
Die Temperatur / Feuchte sowie Dewpoint bekomme ich angezeigt,
setzen / lesen der Soll-Temperatur funktioniert noch nicht richtig.
Kann ich statechannel und statedatapoint verwenden oder nur eins?
Meine Definiton sieht momentan so aus:
Internals:
CFGFN
CHANGED
DEF HM-CC-TC_Bad
IODev hm_ccu
NAME HM_HZ_1OG_W_TC
NR 867
STATE T: 20.8° H: 69% D: 19.000000° P: 14.9°
TYPE HMCCUDEV
ccuaddr JEQ0726089
ccudevstate Active
ccuif BidCos-RF
ccuname HM-CC-TC_Bad
ccutype HM-CC-TC
channels 4
statevals devstate
Readings
DEWPOINT 14.8
HM-CC-TC_Bad.0.CONFIG_PENDING false
HM-CC-TC_Bad.0.LOWBAT no
HM-CC-TC_Bad.0.RSSI_DEVICE 1
HM-CC-TC_Bad.0.RSSI_PEER 188
HM-CC-TC_Bad.0.STICKY_UNREACH false
HM-CC-TC_Bad.0.UNREACH false
HM-CC-TC_Bad.1.HUMIDITY 69
HM-CC-TC_Bad.1.TEMPERATURE 20.7
HM-CC-TC_Bad.2.ADJUSTING_COMMAND 0
HM-CC-TC_Bad.2.ADJUSTING_DATA 0
HM-CC-TC_Bad.2.SETPOINT 19.000000
R-HM-CC-TC_Bad.BUTTON_LOCK 0
R-HM-CC-TC_Bad.DISPLAY_BACKLIGHT_MODE 0
R-HM-CC-TC_Bad.DISPLAY_BACKLIGHT_TIME 0
state Initialized
Attributes:
IODev hm_ccu
ccureadingfilter (^HUMIDITY|^TEMPERATURE|^DEWPOINT|^SET_TEMPERATURE|^LOWBAT$|^WINDOW_OPEN)
controldatapoint 2.SETPOINT
devStateIcon OK:10px-kreis-gruen Error:10px-kreis-rot Initialized:10px-kreis-gelb
event-on-change-reading .*
room 1.30:Bad,Homematic
stateFormat T: HM-CC-TC_Bad.1.TEMPERATURE° H: HM-CC-TC_Bad.1.HUMIDITY% D: HM-CC-TC_Bad.2.SETPOINT° P: DEWPOINT°
statechannel 2
stripnumber 1
substitute LOWBAT!(0|false):no,(1|true):yes;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
userReadings DEWPOINT {HMCCU_Dewpoint($name,"HM-CC-TC_Bad.1.TEMPERATURE", "HM-CC-TC_Bad.1.HUMIDITY","n/a")}
webCmd control
widgetOverride control:slider,10,1,25
Gruß
Sven
So lautet meine Definition, die bei mir funktioniert:
Internals:
CHANGED
DEF <sn>
IODev HMCCU2
NAME EZ.Wandthermostat
NR 1160
STATE T: 20.1° H: 43% T: 20.0° D: 7.1°
TYPE HMCCUDEV
ccuaddr NEQ0071936
ccudevstate Active
ccuif BidCos-RF
ccuname EZ.Wandthermostat
ccutype HM-TC-IT-WM-W-EU
channels 6
statevals devstate
Readings:
2016-12-11 14:29:22 0.LOWBAT no
2016-12-11 14:29:22 0.UNREACH no
2016-12-11 23:48:56 1.HUMIDITY 43
2016-12-11 23:48:56 1.TEMPERATURE 20.1
2016-12-11 23:48:36 2.SET_TEMPERATURE 20.0
2016-12-11 23:40:29 2.WINDOW_OPEN_REPORTING closed
2016-12-11 23:48:56 DEWPOINT 7.1
2016-12-11 23:48:36 control 20.0
2016-12-11 23:48:36 state 20.0
Attributes:
IODev HMCCU2
alias Esszimmer Wandthermostat
ccureadingfilter (^UNREACH|^HUMIDITY|^TEMPERATURE|^SET_TEMPERATURE|^LOWBAT$|^WINDOW_OPEN)
ccureadingformat datapoint
cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
controldatapoint 2.SET_TEMPERATURE
devStateIcon OK:10px-kreis-gruen Error:10px-kreis-rot Initialized:10px-kreis-gelb
event-on-change-reading .*
eventMap /datapoint 2.MANU_MODE 20.0:Manu/datapoint 2.AUTO_MODE 1:Auto/datapoint 2.BOOST_MODE 1:Boost/datapoint 2.MANU_MODE 4.5:off/datapoint 2.MANU_MODE 30.5:on/
group Heizung & Thermostate
icon hm-tc-it-wm-w-eu
room Device,Esszimmer
stateFormat T: 1.TEMPERATURE° H: 1.HUMIDITY% T: 2.SET_TEMPERATURE° D: DEWPOINT°
statechannel 2
statedatapoint 2.SET_TEMPERATURE
stripnumber 1
substexcl control
substitute LOWBAT,UNREACH!(0|false):no,(1|true):yes;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
userReadings DEWPOINT {HMCCU_Dewpoint($name,"1.TEMPERATURE", "1.HUMIDITY","n/a")}
webCmd control:Auto:Manu:Boost:on:off
widgetOverride control:slider,4.5,0.5,30.5,1
Ist in direkt verbunden mit einem Heizkörperthermostat und einem Fensterschließer
Zitat von: Yil am 11 Dezember 2016, 23:53:00
So lautet meine Definition, die bei mir funktioniert:
ccureadingformat datapoint
eventMap /datapoint 2.MANU_MODE 20.0:Manu/datapoint 2.AUTO_MODE 1:Auto/datapoint 2.BOOST_MODE 1:Boost/datapoint 2.MANU_MODE 4.5:off/datapoint 2.MANU_MODE 30.5:on/
stateFormat T: 1.TEMPERATURE° H: 1.HUMIDITY% T: 2.SET_TEMPERATURE° D: DEWPOINT°
substexcl control
substitute LOWBAT,UNREACH!(0|false):no,(1|true):yes;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
Hallo Yil,
mit den Ergänzungen funktioniert es nun bei mir, vielen Dank!
Gruß
Sven
Zitat von: SFAB am 11 Dezember 2016, 18:12:14
Mein größeres Problem ist gerade, dass der Mehrfachtaster anscheinend nicht in die vorgesehen UP-Dose passt, da die Verkabelung dort schon zu viel Platz wegnimmt...
Das Problem kenne ich. Wie sieht es mit Aufbohren aus? Also Dose mehr oder weniger zerstören (zumindest die Rückseite) und mit dem Bohrhammer Platz schaffen. Geht natürlich nicht bei Mietwohnung oder Miethaus.
Zitat von: zap am 12 Dezember 2016, 07:30:16
Mietwohnung
ist das Zauberwort ::)
Da sich meine Möglichkeiten daher in Grenzen halten, sehe ich das ganze Thema im Moment auch eher als Spielwiese an, um Erfahrungen zu sammeln. Außerdem ist auch eine gewisse Herausforderung unter diesen Bedingungen die eigenen Ideen irgendwie umzusetzen.
Zitat von: zap am 12 Dezember 2016, 07:30:16
Geht natürlich nicht bei Mietwohnung oder Miethaus.
wieso soll das da nicht gehen.... wenn du bei auszug die dose wieder zurückbaust wo ist das problem (oder einfach die tiefer up-dose drinnen lassen, niemand wirds merken oder meckern)
Wenn mich mein Mieter fragen würde, würde ich es ihm sogar erlauben ;-)
Hallo zusammen,
hat vielleicht jemand schon den Neigungssensor HM-Sec-TiS über HMCCU angeschlossen und kann mir sagen, wie das aussehen muss?
Vielen Dank und viele Grüße
Markus
Grundsätzliche Vorgehensweise beim Einbinden neuer Geräte:
* In CCU anlernen
* Namen des Gerätes und seiner Kanäle in der CCU2 nach eigenen Bedürfnissen anpassen
* Im I/O Device von HMCCU einmal "get devicelist" ausführen
* Im I/O Device einmal "get deviceinfo CCU2-Devname" ausführen mit CCU2-Devname = Name des neuen Gerätes in der CCU2. Das gibt einen ersten Indikator, welche Datenpunkte nützlich sind. Ggf. kann man auch hier nachlesen: http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf (http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf)
* Aufgrund der Infos vorher entscheiden, ob man nur einen Kanal benötigt (HMCCUCHN verwenden) oder mehrere Kanäle (HMCCUDEV)
* Device in FHEM definieren
* Attribute setzen wie z.B. ccureadingfilter, um nur die notwendigen Datenpunkte in Readings zu speichern. Vielleicht noch ccureadingformat auf datapoint setzen, damit die Readingsnames kürzer werden. Dann noch event-on-change-reading auf .* setzen (bei Tastern event-on-update-reading = .*).
Damit dürftest Du ziemlich weit kommen. Speziell beim Neigungssensor
define mysensor HMCCUCHN Kanalname
attr mysensor ccureadingformat datapoint
attr mysensor ccureadingfilter (LOWBAT|STATE)
attr mysensor event-on-change-reading .*
attr statedatapoint 1.STATE
attr substitute LOWBAT!(0|false):no,(1|true):yes
Leider weiß ich nicht, welche Werte STATE annehmen kann. Das musst Du ausprobieren und substitute entsprechend ergänzen.
Hi zap,
sehr gute Mini-Anleitung. Verlink diesen letzten Beitrag von Dir mal ganz an den Anfang - das hilft sicherlich vielen beim Einstieg in dieses Modul! ;)
VG Yil
Zitat von: zap am 11 Oktober 2016, 17:16:44
Ich habe einen HM-PB-2-WM55. Für jede der beiden Tasten habe ich ein HMCCUCHN Device definiert:
define meinetaste HMCCUCHN TasterKanal1
attr meinetaste ccureadingfilter (LOWBAT|UNREACH|PRESS)
attr meinetaste ccureadingformat datapoint
attr meinetaste statedatapoint PRESS_SHORT
attr meinetaste statevals press:true
attr meinetaste substitute 1|true:pressed
Wichtig ist, in diesem Fall nicht event-on-change-reading zu setzen sondern ggf. event-on-update-reading = .*
Es ist zwar schon ein Weilchen her, aber ich hab mich jetzt erst an die endgültige Umsetzung gemacht. Es funktioniert, ich hab aber noch eine Frage zum notify:
define N_WoZiHeimkinoOn notify WoZi_Taster_oben set WoZi_Heimkino on
Funktioniert, unterscheidet aber nicht zwischen long_press/short_press (völlig logisch!)
Das sind in der "DeviceOverview" die "Readings":
1.PRESS_LONG pressed 2017-01-07 16:48:10
1.PRESS_LONG_RELEASE pressed 2017-01-07 16:48:10
1.PRESS_SHORT pressed 2017-01-07 16:49:05
state pressed 2017-01-07 16:49:05
Klappt also auch prima! Nun bin ich der Meinung, dass es zB so funktionieren sollte:
define N_WoZiHeimkinoOn notify WoZi_Taster_oben:1.PRESS_LONG set WoZi_Heimkino on
Dann passiert aber gar nichts mehr (testhalber auch mal ohne das "1." versucht).
Das Attribut "statedatapoint", das oben zum Device angelegt wurde, bleibt immer auf "PRESS_SHORT" stehen. Vermutlich hängt es damit zusammen, dass das Notify hinter dem Doppelpunkt nicht die Readings, sondern dieses Attribut ausliest, das aber nicht gesetzt wird?
Schau doch erst mal im FHEM Eventmonitor, welche Events kommen, wenn Du die Taste kurz/lang drückst. Dann kannst Du schon mal prüfen,, ob die Events korrekt kommen.
Hab' auch den Bewegungsmelder mit den Tasten HM-Sen-MDIR-WM55 im Einsatz.
MOTION nimmt 1 oder 0 an. Deshalb wird es wohl auch mit "event-on-change-reading" erfasst.
Bei den Tastern geht das leider nicht.
PRESS_SHORT bleibt immer auf 1 stehen. Es kann auch nur mit "event-on-update-reading" erfasst werden, aber die 1 bleibt immer - lediglich an Datum und Zeit erkennt man das Ereignis.
Das Gleiche gilt bei PRESS_LONG, auch hier immer 1.
Als attr genügt IODev und event-on-change-reading.
Damit kann ich kein StateIcon - wie bei MOTION - ansteuern.
Was mache ich bei der Abfrage evt. falsch?
devStateIcon ersetzt ja den Inhalt von STATE durch ein Symbol. Grundsätzlich geht das, allerdings wird bei MOTION immer das gleiche Icon angezeigt werden, weil sich der Inhalt ja nie ändert.
Zunächst musst Du Deinem Device mitteilen, welchen Datenpunkt er in state/STATE übernehmen soll. Bei einem HMCCUDEV Device setzt Du folgendes Attribut:
statedatapoint n.MOTION
wobei n die Kanalnummer des Datenpunktes MOTION ist. Bei einem HMCCUCHN Device läßt Du "n." weg.
Dann solltest Du den Wert von MOTION ersetzen, da hier 0/1 oder false/true kommen kann. Das machst Du mit
substitute MOTION!(0|false):noMotion,(1|true):motion
Nun kannst Du das Stateicon setzen:
devStateIcon motion:xyz noMotion:abc
Problem: abc wird niemals angezeigt werden.
Danke für die schnelle Antwort, die leider nicht mein Problem treffen. Offensichtlich hab ich das missverständlich formuliert.
Neuer Versuch:
Motion ist kein Problem. Hier kommt 1/0, so dass ich das StatIcon ansteuern kann.
Probleme habe ich bei der Auswertung der Tasterfunktionen, die bleiben immer auf 1 stehen - sowohl beim state SHORT_PRESS als auch LONG_PRESS.
Die readings kann man schön im Eventmonitor sehen. Leider kommt nie eine 0, wenn man die Taste loslässt.
Im Moment hab' ich keine Idee, wie ich die Tastfunktionen in fhem verwenden kann.
Zitat von: Vorhand am 10 Januar 2017, 09:38:28
Probleme habe ich bei der Auswertung der Tasterfunktionen, die bleiben immer auf 1 stehen - sowohl beim state SHORT_PRESS als auch LONG_PRESS.
Die readings kann man schön im Eventmonitor sehen. Leider kommt nie eine 0, wenn man die Taste loslässt.
Im Moment hab' ich keine Idee, wie ich die Tastfunktionen in fhem verwenden kann.
Ach so. Das kenne ich. Die CCU2 schickt leider keine 0-Werte, wenn die Taste losgelassen wird. Verwenden kannst Du es in FHEM aber trotzdem. Du setzt event-on-update-reading auf PRESS_.*. Jedes entsprechende PRESS-Event ist dann ein Tastendruck. So nutze ich das selbst auch.
Einzige Ausnahme: es gibt ein PRESS_LONG_RELEASE. Das geht auf 1 wenn nach einem langen Tastendruck die Taste losgelassen wird (angeblich, nicht getestet). Das könnte ich Modul intern so auswerten, dass in dem Fall PRESS_LONG auf 0 zurück gesetzt wird. Leider gibt es kein PRESS_SHORT_RELEASE :-(
Ich habe mir kürzlich ein paar HMIP Geräte zugelegt, an eine neue CCU2 angelernt und per HMCCU in Fhem eingebunden.
Vielen Dank an zap und die vielen Beitragenden für die tolle und mit Sicherheit sehr mühsame Arbeit die in Fhem einfließt! Klasse, was man inzwischen mit Fhem alles machen kann.
Hier eine neue Konfiguration, die ich zu großen Teilen von DaDiGi abgeleitet habe.
Wandthermostat HMIP-WTH-2
Device-Info:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 197 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 206 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 21.300000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 58 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 15.500000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Definition:
define CCU2.Guestroom_1.HMIP_WTH_2 HMCCUDEV 000A9569A32F96
attr CCU2.Guestroom_1.HMIP_WTH_2 IODev CCU2_0
attr CCU2.Guestroom_1.HMIP_WTH_2 ccureadingfilter (ACTUAL_TEMPERATURE|ACTIVE_PROFILE|BOOST_MODE|SET_POINT|PARTY|HUMIDITY|WINDOW_STATE|LOW_BAT)
attr CCU2.Guestroom_1.HMIP_WTH_2 controldatapoint 1.SET_POINT_TEMPERATURE
attr CCU2.Guestroom_1.HMIP_WTH_2 event-on-change-reading .*
attr CCU2.Guestroom_1.HMIP_WTH_2 room CCU2
attr CCU2.Guestroom_1.HMIP_WTH_2 stateFormat measured temperature: Guestroom_1.HMIP-WTH-2.1.ACTUAL_TEMPERATURE
attr CCU2.Guestroom_1.HMIP_WTH_2 statedatapoint ACTUAL_TEMPERATURE
attr CCU2.Guestroom_1.HMIP_WTH_2 substitute LOW_BAT!(0|false):ok,(1|true):low;;;;WINDOW_STATE!(true|1):Open,(false|0):Closed
attr CCU2.Guestroom_1.HMIP_WTH_2 webCmd control
attr CCU2.Guestroom_1.HMIP_WTH_2 widgetOverride control:slider,10,1,25
@zap:
Nimmst du solche Konfigurationen in ein Template auf, damit man beim Einbinden weiterer Geräte der gleichen Art Standardeinstellungen erhält?
Brauchst du dafür noch weitere Informationen?
Zitat von: Vorhand am 10 Januar 2017, 09:38:28
Probleme habe ich bei der Auswertung der Tasterfunktionen, die bleiben immer auf 1 stehen - sowohl beim state SHORT_PRESS als auch LONG_PRESS.
Die readings kann man schön im Eventmonitor sehen. Leider kommt nie eine 0, wenn man die Taste loslässt.
Im Moment hab' ich keine Idee, wie ich die Tastfunktionen in fhem verwenden kann.
Ich habe das so gelöst, dass ich das Reading per setreading wieder auf 0 setze.
Gruß
Spielmann
Zitat von: zap am 10 Januar 2017, 16:37:11
Du setzt event-on-update-reading auf PRESS_.*. Jedes entsprechende PRESS-Event ist dann ein Tastendruck.
Auch dieses attr ändert nichts an state - im Gegenteil - in den Readings passiert dann gar nichts mehr.
Nur wenn ich statedatapoint auf z.B. PRESS_SHORT setze ändert sich state, allerdings nur der timestamp.
Zitat von: Spielmann am 11 Januar 2017, 09:42:56
Ich habe das so gelöst, dass ich das Reading per setreading wieder auf 0 setze.
Wie müsste der Code für das "setreading" genau aussehen?
Frage: Hat denn schon jemand den HM-Sen-MDIR-WM55 komplett ausgewertet mit den 4 Unterfunktionen 0...3 ?
:0 keine Ahnung?
:1 steht für untere Taste - klappt nicht
:2 steht für obere Taste - klappt nicht
:3 steht für MOTION - das klappt bei mir mit folgendem Code:
define HM_BM_Bwm HMCCUCHN MEQ185xxx9:3
attr HM_BM_Bwm IODev d_ccu
attr HM_BM_Bwm devStateIcon 0:message_presence_disabled 1:motion_detector@red
attr HM_BM_Bwm devStateStyle style="text-align:right;;"
attr HM_BM_Bwm event-on-change-reading .*
attr HM_BM_Bwm icon message_presence
attr HM_BM_Bwm room Homatic
attr HM_BM_Bwm statedatapoint MOTION
Zitat von: Vorhand am 11 Januar 2017, 10:28:46
Wie müsste der Code für das "setreading" genau aussehen?
Ich mache viel mit DOIF. Hier mal exemplarisch wie ich das meine:
define licht_einschalten DOIF ([HM_BM_Bwm] == 1) (set licht on,
setreading HM_BM_Bwm 0) DOELSE (set licht off)
Ich bin noch nicht so Syntaxfest dass ich es aus dem Kopf kann und habe jetzt kein Zugriff auf mein fhem (vemutlich sind hier noch Fehler drin).
Zitat
Frage: Hat denn schon jemand den HM-Sen-MDIR-WM55 komplett ausgewertet mit den 4 Unterfunktionen 0...3 ?
Ich habe auch so ein Teil zum Experimentieren und schon teilweise Attribute gesetzt. Vielleicht komme ich heute Abend dazu es zu posten.
Gruß
Spielmann
Zitat von: Vorhand am 11 Januar 2017, 10:28:46
Frage: Hat denn schon jemand den HM-Sen-MDIR-WM55 komplett ausgewertet mit den 4 Unterfunktionen 0...3 ?
:0 keine Ahnung?
:1 steht für untere Taste - klappt nicht
:2 steht für obere Taste - klappt nicht
:3 steht für MOTION - das klappt bei mir mit folgendem Code:
define HM_BM_Bwm HMCCUCHN MEQ185xxx9:3
attr HM_BM_Bwm IODev d_ccu
attr HM_BM_Bwm devStateIcon 0:message_presence_disabled 1:motion_detector@red
attr HM_BM_Bwm devStateStyle style="text-align:right;;"
attr HM_BM_Bwm event-on-change-reading .*
attr HM_BM_Bwm icon message_presence
attr HM_BM_Bwm room Homatic
attr HM_BM_Bwm statedatapoint MOTION
Das Teil ist hier beschrieben: http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf
Kanal 0 ist immer der Statuskanal. Der enthält solche Datenpunkte wie LOWBAT oder UNREACH. Einfach mal get deviceinfo ausführen.
Wenn Du sowas in ein HMCCUDEV Device packen möchtest, versuch doch mal das (nicht getestet, habe das Gerät nicht):
ccureadingformat datapoint
ccureadingname 1.PRESS_(SHORT|LONG):press_one,2.PRESS_(SHORT|LONG):press_two
event-on-update-reading ^press.*
eventMap /datapoint 1.PRESS_SHORT true:press-one/datapoint 2.PRESS_SHORT true:press-two/
ccureadingfilter (LOWBAT|UNREACH|PRESS|MOTION)
statedatapoint 3.MOTION
substitute MOTION!(0|false):nomotion,(1|true):motion;PRESS_SHORT,PRESS_LONG!(1|true):pressed
Sollte Dir jedes Mal ein Event schicken, wenn Du eine der Tasten drückst. ccureadingname mappt hier PRESS_LONG und PRESS_SHORT auf ein Reading press_one bzw. press_two.
Da MOTION vom Typ BOOL ist, nehme ich an, hier schickt die CCU tatsächlich true oder false bzw 1 oder 0.
Ich poste wie angekündigt meine Definitionen zum HM-Sen-MDIR-WM55 (falls dir das von zap noch nicht reicht):
define HM_Funktaster_BM_Windfang HMCCUDEV Funktaster_BM_Windfang
attr HM_Funktaster_BM_Windfang IODev CCU2
attr HM_Funktaster_BM_Windfang ccureadingfilter (^UNREACH|^LOWBAT$|MOTION|PRESS|BRIGHTNESS)
attr HM_Funktaster_BM_Windfang ccureadingformat datapoint
attr HM_Funktaster_BM_Windfang ccureadings 1
attr HM_Funktaster_BM_Windfang event-on-update-reading .*
attr HM_Funktaster_BM_Windfang room HMCCU,Licht
attr HM_Funktaster_BM_Windfang statedatapoint 3.MOTION
attr HM_Funktaster_BM_Windfang substitute MOTION!(0|false):nomotion,(1|true):motion;;LOWBAT,UNREACH!(0|false):no,(1|true):yes
und hier ein Beispiel, mit setreading das reading wieder auf null zurückzusetzen:
define Licht_BM DOIF ([HM_Funktaster_BM_Windfang:1.PRESS_SHORT] == 1) (set Licht_Flur trigger, setreading HM_Funktaster_BM_Windfang 1.PRESS_SHORT 0 )
attr Licht_BM do always
Die Tastendrücke wandle ich nicht mit substitute um, da ich smartVisu habe und mit 0 und 1 das besser weiterverarbeiten kann. Noch zu erwähnen ist, dass ich im ccureadingfilter noch BRIGHTNESS habe.
Gruß
Spielmann
Zitat von: thomas.kregelin am 11 Januar 2017, 00:47:52
Hier eine neue Konfiguration, die ich zu großen Teilen von DaDiGi abgeleitet habe.
Wandthermostat HMIP-WTH-2
Device-Info:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 21.300000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 15.500000 [RWE]
@zap:
Nimmst du solche Konfigurationen in ein Template auf, damit man beim Einbinden weiterer Geräte der gleichen Art Standardeinstellungen erhält?
Brauchst du dafür noch weitere Informationen?
Gerne nehme ich Deine Definition in die Templates auf. Um das noch etwas runder zu machen, brauche ich aber Deine Unterstützung. Mich interessiert, wie sich die oben rein kopierten Datenpunkte verhalten, wenn Du manuell am Wandthermostat Einstellungen vornimmst. Es wäre super, wenn Du nach jeder Einstellung einfach ein "get deviceinfo" machen und mir zukommen lassen könntest:
- Boost Mode einschalten => get deviceinfo
- Zieltermperatur am Drehrad ändern => get deviceinfo
- Dauer-Aus (falls nicht per Knopf möglich, Zieltemperatur ganz runterdrehen) => get deviceinfo
- Dauer-Ein (falls nicht per Knopf möglich, Zieltemperatur ganz hochdrehen) => get deviceinfo
- Party Mode einschalten => get deviceinfo
ZitatGerne nehme ich Deine Definition in die Templates auf. Um das noch etwas runder zu machen, brauche ich aber Deine Unterstützung. Mich interessiert, wie sich die oben rein kopierten Datenpunkte verhalten, wenn Du manuell am Wandthermostat Einstellungen vornimmst. Es wäre super, wenn Du nach jeder Einstellung einfach ein "get deviceinfo" machen und mir zukommen lassen könntest:
Hallo zap,
inzwischen habe ich mich mehr (aber noch nicht ausreichend ...) mit dem Thema beschäftigt. Die Definition enthielt noch einige Lücken bzw. Unrichtigkeiten. Ich experimentiere noch.
Einige Einstellungen, wie zum Beispiel das Aktivieren des Boost-Modus konnte ich nur per CCU2 vornehmen.
Hier die Device Infos:
Ausgangszustand => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 195 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 200 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 26.700000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 46 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 21.000000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = true [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Boost Mode einschalten => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 205 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 207 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 26.500000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = true [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 46 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 21.000000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Zieltemperatur am Drehrad ändern => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 202 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 207 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 25.600000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 45 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 18.500000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Dauer-Aus (per CCU2) => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 197 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 199 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 25.500000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 45 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 1 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 5.000000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Dauer-Ein (per CCU2) => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 203 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 205 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 25.500000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 45 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 1 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 30.000000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Holiday Mode ein (per CCU2) => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 203 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 205 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 25.200000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 45 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = true [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 10.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = 2017_01_11 02:50 [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = 2017_01_12 21:00 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 2 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 10.000000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Wochenprofil auf 3 setzen (per CCU2) => get deviceinfo:
CHN 000A9569A32F96:0 Guestroom_1.HMIP-WTH-2:0
DPT {b} HmIP-RF.000A9569A32F96:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_DEVICE = 202 [RE]
DPT {n} HmIP-RF.000A9569A32F96:0.RSSI_PEER = 202 [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A9569A32F96:0.UPDATE_PENDING = false [RE]
CHN 000A9569A32F96:1 Guestroom_1.HMIP-WTH-2:1
DPT {i} HmIP-RF.000A9569A32F96:1.ACTIVE_PROFILE = 3 [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.ACTUAL_TEMPERATURE = 25.200000 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.BOOST_MODE = false [WE]
DPT {f} HmIP-RF.000A9569A32F96:1.CONTROL_DIFFERENTIAL_TEMP = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A9569A32F96:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A9569A32F96:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.HUMIDITY = 45 [RE]
DPT {b} HmIP-RF.000A9569A32F96:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A9569A32F96:1.PARTY_SET_POINT_TEMPERATU = 10.000000 [RE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_END = 2017_01_11 02:50 [RWE]
DPT {s} HmIP-RF.000A9569A32F96:1.PARTY_TIME_START = 2017_01_12 21:00 [RWE]
DPT {i} HmIP-RF.000A9569A32F96:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A9569A32F96:1.SET_POINT_TEMPERATURE = 21.000000 [RWE]
DPT {b} HmIP-RF.000A9569A32F96:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.000A9569A32F96:1.WINDOW_STATE = 0 [WE]
Vielen Dank fürs Testen!
Leider hat EQ-3 einige Unzulänglichkeiten noch nicht behoben. Der Datenpunkt CONTROL_MODE wird nicht aktualisiert. Das ist insofern schlecht, als man in FHEM nur eine Info bekommt, wenn der Boost Mode ein oder aus ist.
Außerdem entspricht laut Doku off=4.5 und on=30.5 Grad. Bei Dir sind es 5 und 30, oder läßt Du die Werte runden?
Hier zusammengefasst eine erste, noch nicht 100% fertige Konfiguration (ich habe absichtlich keinen Readingfilter gesetzt, kann man aber noch ergänzen und ggf. für de webCmds mit cmdIcon Symbole hinterlegen):
Heizkörperthermostat HMIP-eTRV:
ccureadingname = "1.LEVEL:valve_position",
ccuscaleval = "LEVEL:0:1:0:100",
controldatapoint = "1.SET_POINT_TEMPERATURE",
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/",
statedatapoint = "1.SET_POINT_TEMPERATURE",
stripnumber = 1,
substexcl = "control",
substitute = "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
webCmd = "control:Boost:Auto:Manual:Holiday:on:off",
widgetOverride = "control:slider,4.5,0.5,30.5,1"
Wandthermostate HMIP-WTH und HMIP-WTH-2:
controldatapoint = "1.SET_POINT_TEMPERATURE",
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/",
statedatapoint = "1.SET_POINT_TEMPERATURE",
stripnumber = 1,
substexcl = "control",
substitute = "SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open",
webCmd = "control:Boost:Auto:Manual:Holiday:on:off",
widgetOverride = "control:slider,4.5,0.5,30.5,1"
mein rpc-server war bussy
4.BOOST_STATE
4.CONTROL_MODE
aktualisieren sich sehr wohl sofort nach aktivierung boost!! ohne get update hinterher und nach boost geht control mode schön auf 0 zurück
Bei den BidCos Thermostaten funktioniert die Aktualisierung. Wir reden aber hier von den HM-IP Teilen. Und da fehlen die Events für CONTROL_MODE.
oh, das habe ich überlesen, sorry
@zap
ZitatAußerdem entspricht laut Doku off=4.5 und on=30.5 Grad. Bei Dir sind es 5 und 30, oder läßt Du die Werte runden?
Danke fürs Einfügen.
Die Werte runde ich nicht - jedenfalls habe ich nicht bewusst irgend eine Rundungsfunktion eingefügt ...
Die Wandthermostate funktionieren mit deiner Konfiguration sehr gut - mir fehlt momentan nichts.
Klasse Arbeit, die du da machst!
Grüße
TK
Zitat von: chris1284 am 13 Januar 2017, 22:05:25
anbei eine dev für den funk-rgbw-controler mit colorpicker
Irgendwie sind da noch Attribute eines Thermostaten mit rein geraten. Ich habe das jetzt mal so angepasst. Schau mal, ob das so funktionieren würde. Wenn ja, checke ich es ein:
"HM-LC-RGBW-WM" => {
_description => "Funk-RGBW-Controller",
ccureadingfilter => "(COLOR|PROGRAM|LEVEL)",
ccureadingname => "2.COLOR:+color,3.PROGRAM:+prog",
controldatapoint => "1.LEVEL",
ccuscaleval => "LEVEL:0:1:0:100",
statedatapoint => "1.LEVEL",
statevals => "on:100,off:0",
stripnumber => 1,
substexcl => "control",
substitute => "LEVEL!#0-0:off,#1-100:on",
webCmd => "control:color:prog:on:off",
widgetOverride => "control:slider,0,1,100 prog:0,1,2,3,4,5,6 color:colorpicker,HUE,0,1,100"
},
tatsache...
ZitateventMap /datapoint 1.LEVEL 100:on/datapoint 1.LEVEL 0:off/datapoint 3.PROGRAM :prog/datapoint 2.COLOR :color
fehlt noch
Zitatstatevals => "on:100,off:0",
richtiger wäre on -> alles größer 0 und off 0
ich habs weg gelassen, die eventmap regelt on / off
Zitatsubstitute => "LEVEL!#0-0:off,#1-100:on",
schechte idee, dann zeigt der helligkeitsslider nur blödsinn an und nicht mehr den aktuellen dim wert
anbei mal ein bild. die channels einzeln sind auch mit drauf
eigentlich reicht ja das hmccudev völlig aus. belasten die channels zusätzlich noch die hmccu/den rpcserver oder holt er eh das device und hat somit 1x daten holen = 3 fhem devices mit werten versorgen?
sprich: performancevorteil wenn man in so einem fall die channels weg lässt?
@zap
Wollte mir gerade die defaults für meine Wandthermostate aus deinem Template holen.
Das scheiterte. Offenbar ist das System case-sensitive.
In der HMCCUConf.pm ist der Wandthermostat benannt mit HMIP-WTH-2.
Richtig wäre HmIP-WTH-2. Hab' die Config-Datei auch einmal geändert zum Testen - damit konnte ich mir die defaults holen.
Homematic ist hier ziemlich inkonsequent mit der Bezeichnung. Ich habe zum Beispiel eine Funk/Mess-Steckdose mit der Bezeichnung HMIP-PSM. Dort ist es ein großes "M".
Diese "HmIP"-Schreibweise trifft übrigens auch auf HmIP-WTH zu.
Auf der eq3-Seite habe ich noch einige andere Geräte in "HmIP"-Schreibweise gefunden. Davon ist aber noch keines in deinem Template.
@thomas.kregelin: Danke für den Hinweis. Ich ändere das im Template ab. In der nächsten Version wird HMCCU bei den Gerätetypen Groß-/Kleinschreibung ignorieren.
@chris1284: Das Attribut statevals wird nur beim Setzen von Werten verwendet. on:100 bedeutet, dass bei "set on" der statedatapoint (1.LEVEL) auf 100 gesetzt wird. Vorher greift dann noch ccuscaleval, das aus 100 den Wert 1 macht. Entspricht also Deiner eventMap Definition für "on". Allerdings steht Dir ohne statevals kein "set toggle" zur Verfügung, da dieser Befehl zwischen den bei statevals definierten Werten hin und her schaltet.
Die LEVEL Einträge bei substitute führen nur dann zum Fehlverhalten des Slisders, wenn substexcl nicht auf control gesetzt ist. Falls Du substexcl doch gesetzt hast, ist das vermutlich ein Bug.
Hier mal die Daten für den HM-Sec-SC-2
define HM_Sec_SC_2_1 HMCCUDEV Sec_SC_2
attr HM_Sec_SC_2_1 IODev HM_CCU2
attr HM_Sec_SC_2_1 ccureadingfilter STATE
attr HM_Sec_SC_2_1 hmstatevals ERROR!7:sabotage
attr HM_Sec_SC_2_1 room Homematic,Kueche
attr HM_Sec_SC_2_1 statedatapoint STATE
attr HM_Sec_SC_2_1 substitute STATE!(0|false):closed,(1|true):open;;ERROR!0:no,7:sabotage
CHN MEQ1234711:0 Sec_SC_2_1:0
DPT {b} BidCos-RF.MEQ1234711:0.UNREACH = false [RE]
DPT {b} BidCos-RF.MEQ1234711:0.STICKY_UNREACH = false [RWE]
DPT {b} BidCos-RF.MEQ1234711:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.MEQ1234711:0.LOWBAT = false [RE]
DPT {n} BidCos-RF.MEQ1234711:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.MEQ1234711:0.RSSI_PEER = 45 [RE]
DPT {n} BidCos-RF.MEQ1234711:0.AES_KEY = 0 [R]
CHN MEQ1234711:1 Sec_SC_2_1:1
DPT {b} BidCos-RF.MEQ1234711:1.STATE = false [RE]
DPT {i} BidCos-RF.MEQ1234711:1.ERROR = 7 [RE]
DPT {b} BidCos-RF.MEQ1234711:1.LOWBAT = false [RE]
DPT {b} BidCos-RF.MEQ1234711:1.INSTALL_TEST = [E]
R-Sec_SC_2_1_Kueche.CYCLIC_INFO_MSG
R-Sec_SC_2_1_Kueche.SABOTAGE_MSG
R-Sec_SC_2_1_Kueche.TRANSMIT_DEV_TRY_MAX
Sec_SC_2_1_Kueche.0.AES_KEY
Sec_SC_2_1_Kueche.0.CONFIG_PENDING
Sec_SC_2_1_Kueche.0.LOWBAT
Sec_SC_2_1_Kueche.0.RSSI_DEVICE
Sec_SC_2_1_Kueche.0.RSSI_PEER
Sec_SC_2_1_Kueche.0.STICKY_UNREACH
Sec_SC_2_1_Kueche.0.UNREACH
Sec_SC_2_1_Kueche.1.ERROR
Sec_SC_2_1_Kueche.1.LOWBAT
Sec_SC_2_1_Kueche.1.STATE
@Zap
Kannst du den Sensor in die HMCCUConf.pm aufnehmen, wenn ja, reichen die Infos, oder benötigst du noch was...
Zitat von: chris1284 am 14 Januar 2017, 20:28:03
eigentlich reicht ja das hmccudev völlig aus. belasten die channels zusätzlich noch die hmccu/den rpcserver oder holt er eh das device und hat somit 1x daten holen = 3 fhem devices mit werten versorgen?
sprich: performancevorteil wenn man in so einem fall die channels weg lässt?
Der Performance Gewinn ohne die CHN Devices ist gering. Die CCU2 schickt die Datenpunkte und HMCCU verteilt sie an alle Devices mit der entsprechenden Geräteadresse. Sie werden also nicht mehrfach übertragen.
@rubinho: Ist jetzt drin, nur noch nicht eingecheckt.
In den neuersten Definition vom device:HM-Sec-SCo|HM-Sec-SC|HMIP-SWDO passt das für (mindestens) HM-Sec-SCo nicht und ist auch in der eq3 Dokumentation falsch:
SABOTAGE gibt es nicht sondern nur einen Errorcode 7. Es gibt auch ein HM-Script "Servicemeldungen" von alchy das dies auch belegt (Auszug vom Script) - was natürlich auch kein Garant für Richtigkeit ist:
if((sdev.HssType()=="HM-Sec-RHS") || (sdev.HssType()=="HM-Sec-SC") || (sdev.HssType()=="HM-Sec-SC-2") || (sdev.HssType()=="HM-Sec-SCo") || (sdev.HssType()=="HM-Sec-MD") || (sdev.HssType()=="HM-Sec-MDIR") || (sdev.HssType()=="HM-Sec-MDIR-2") || (sdev.HssType()=="HM-Sec-Sir-WM")) {
if (ival == 7){ sdesc = "Sabotage."; }
}
die Definitionen sehen also jetzt bei mir so aus und passen 100% und getestet mindestens für den HM-Sec-SCo:
substitute = STATE!(0|false):closed,(1|true):open;ERROR!(7):sabotage,(0|false):ok
hmstatevals = ERROR!7:sabotage
statedatapoint = 1.STATE
ccureadingfilter = (STATE)
Gruß
Spielmann
Bei dem Anlegen der Rauchwarnmelder ist mir aufgefallen, dass es keine defaults für die Rauchmeldegruppen gibt und die States der Rauchwarnmelder keine Adaptionswerte haben , momentan steht da nur eine 0 (alles im grünen Bereich) oder 1 (Smoke Alarm).
Ich weiß nicht ob das so gewollt ist, oder nur vergessen wurde in die defaults einzubinden.
Hier mal meine Daten der Rauchmeldegruppe... "ccutype HM-Sec-SD-2-Team"
define HM_Group_Sec_SD_2_1 HMCCUDEV Group_Sec_SD_2_1
attr HM_Group_Sec_SD_2_1 IODev HM_CCU2
attr HM_Group_Sec_SD_2_1 hmstatevals STATE!0:ok,1:alarm
attr HM_Group_Sec_SD_2_1 room Homematic
attr HM_Group_Sec_SD_2_1 statedatapoint 1.STATE
attr HM_Group_Sec_SD_2_1 substitute STATE!0:ok,1:alarm
CHN *NEQ0004711:1 Group_Sec_SD_2_1:1
DPT {b} BidCos-RF.*NEQ0004711:1.STATE = ok[RE]
DPT {b} BidCos-RF.*NEQ0004711:1.INSTALL_TEST = [E]
Und bei den Rauchwarnmeldern habe ich noch um Folgendes erweitert. "ccutype HM-Sec-SD-2"
hmstatevals ;STATE!0:ok,1:alarm
substitute ;STATE!0:ok,1:alarm
Ich weiß jetzt nicht, ob unter hmstatevals der "ok" Status mit angegeben werden muss, daher hab ich es mal drinstehen lassen.
Wie schon geschrieben, ich weiß nicht ob es bewusst weggelassen, oder nur übersehen wurde. Daher der Hinweis.
Gruß
Rubinho
Hallo,
ich habe ein kleines Problem mit einem HmIP-FAL230-C10 (Ansteuerung Fussbodenheizung).
Ich habe einige WTH-2 gekoppelt und soweit funktioniert das auch.
Nun möchte ich die Feuchtigserkennung nutzen um meine Lüftungsanlage entsprechend zu steuern (zB beim Duschen).
Ich habe in den WTH-2s die Grenzwerte eingestellt, zB 60%.
Leider ändern sich die Readings bei Überschreitung nicht. Ich hätte erwarte, dass sowohl der entsprechende Kanal (zB 1.HUMIDITY_LIMITER), als auch der Sammler über alle Kanäle (0.HUMIDITY_ALARM) angepasst wird. Passiert aber nichts.
Auch werden die 14 Kanäle der FAL nicht alle ausgelesen, sind "nur" die ersten 11. Der letzte Kanal (13) wäre der für die Ansteuerung eines Luftentfeuchters.
Ist das bei euch auch so? Hat das jemand zum Laufen bekommen?
Hier mal das List von dem FAL:
CHANGED
DEF 0005D5699CF148
IODev ccu
NAME HM_Fussbodenheizung
NR 625
STATE Kanal 1: 0 /2: 1 /3: false /4: false /5: false /6: false /7: false /8: false /9: false /10: false /
TYPE HMCCUDEV
ccuaddr 0005D5699CF148
ccudevstate Active
ccuif HmIP-RF
ccuname Fussbodenheizung
ccutype HmIP-FAL230-C10
channels 14
statevals devstate
Readings:
2017-01-16 19:17:03 0.CONFIG_PENDING false
2017-01-16 19:17:03 0.DATE_TIME_UNKNOWN true
2017-01-16 19:31:11 0.DUTY_CYCLE 0
2017-01-16 19:17:03 0.HEATING_COOLING 0
2017-01-16 19:17:03 0.HUMIDITY_ALARM false
2017-01-16 19:17:03 0.OPERATING_VOLTAGE 0.000000
2017-01-16 19:31:11 0.RSSI_DEVICE -83
2017-01-16 19:17:03 0.RSSI_PEER 188
2017-01-16 19:17:03 0.TEMPERATURE_LIMITER false
2017-01-16 19:31:11 0.UNREACH no
2017-01-16 19:17:03 0.UPDATE_PENDING false
2017-01-16 19:20:50 1.DEW_POINT_ALARM 0
2017-01-16 19:20:50 1.EMERGENCY_OPERATION 0
2017-01-16 19:20:50 1.EXTERNAL_CLOCK 0
2017-01-16 19:20:50 1.FROST_PROTECTION 0
2017-01-16 19:20:50 1.HUMIDITY_LIMITER 0
2017-01-16 19:20:50 1.STATE 0
2017-01-16 19:17:03 10.DEW_POINT_ALARM false
2017-01-16 19:17:03 10.EMERGENCY_OPERATION false
2017-01-16 19:17:03 10.EXTERNAL_CLOCK false
2017-01-16 19:17:03 10.FROST_PROTECTION false
2017-01-16 19:17:03 10.HUMIDITY_LIMITER false
2017-01-16 19:17:03 10.STATE false
2017-01-16 19:31:11 2.DEW_POINT_ALARM 0
2017-01-16 19:31:11 2.EMERGENCY_OPERATION 0
2017-01-16 19:31:11 2.EXTERNAL_CLOCK 0
2017-01-16 19:31:11 2.FROST_PROTECTION 0
2017-01-16 19:31:11 2.HUMIDITY_LIMITER 0
2017-01-16 19:31:11 2.STATE 1
2017-01-16 19:17:03 3.DEW_POINT_ALARM false
2017-01-16 19:17:03 3.EMERGENCY_OPERATION false
2017-01-16 19:17:03 3.EXTERNAL_CLOCK false
2017-01-16 19:17:03 3.FROST_PROTECTION false
2017-01-16 19:17:03 3.HUMIDITY_LIMITER false
2017-01-16 19:17:03 3.STATE false
2017-01-16 19:17:03 4.DEW_POINT_ALARM false
2017-01-16 19:17:03 4.EMERGENCY_OPERATION false
2017-01-16 19:17:03 4.EXTERNAL_CLOCK false
2017-01-16 19:17:03 4.FROST_PROTECTION false
2017-01-16 19:17:03 4.HUMIDITY_LIMITER false
2017-01-16 19:17:03 4.STATE false
2017-01-16 19:17:03 5.DEW_POINT_ALARM false
2017-01-16 19:17:03 5.EMERGENCY_OPERATION false
2017-01-16 19:17:03 5.EXTERNAL_CLOCK false
2017-01-16 19:17:03 5.FROST_PROTECTION false
2017-01-16 19:17:03 5.HUMIDITY_LIMITER false
2017-01-16 19:17:03 5.STATE false
2017-01-16 19:17:03 6.DEW_POINT_ALARM false
2017-01-16 19:17:03 6.EMERGENCY_OPERATION false
2017-01-16 19:17:03 6.EXTERNAL_CLOCK false
2017-01-16 19:17:03 6.FROST_PROTECTION false
2017-01-16 19:17:03 6.HUMIDITY_LIMITER false
2017-01-16 19:17:03 6.STATE false
2017-01-16 19:17:03 7.DEW_POINT_ALARM false
2017-01-16 19:17:03 7.EMERGENCY_OPERATION false
2017-01-16 19:17:03 7.EXTERNAL_CLOCK false
2017-01-16 19:17:03 7.FROST_PROTECTION false
2017-01-16 19:17:03 7.HUMIDITY_LIMITER false
2017-01-16 19:17:03 7.STATE false
2017-01-16 19:17:03 8.DEW_POINT_ALARM false
2017-01-16 19:17:03 8.EMERGENCY_OPERATION false
2017-01-16 19:17:03 8.EXTERNAL_CLOCK false
2017-01-16 19:17:03 8.FROST_PROTECTION false
2017-01-16 19:17:03 8.HUMIDITY_LIMITER false
2017-01-16 19:17:03 8.STATE false
2017-01-16 19:17:03 9.DEW_POINT_ALARM false
2017-01-16 19:17:03 9.EMERGENCY_OPERATION false
2017-01-16 19:17:03 9.EXTERNAL_CLOCK false
2017-01-16 19:17:03 9.FROST_PROTECTION false
2017-01-16 19:17:03 9.HUMIDITY_LIMITER false
2017-01-16 19:17:03 9.STATE false
2017-01-16 19:31:11 hmstate 0
2017-01-16 19:20:50 state 0
Helper:
Bm:
Hmccudev_attr:
cnt 1
dmx 0
mAr
max 0
tot 0
Hmccudev_get:
cnt 18
dmx 0
max 783
tot 2172
mAr:
HASH(0x3861500)
ARRAY(0xd4ac6d0)
HASH(0xd460458)
Hmccudev_set:
cnt 526
dmx 0
max 6
tot 1013
mAr:
HASH(0x3861500)
ARRAY(0xd48adc8)
HASH(0xd48aea0)
Hmccu:
Dp:
0.config_pending:
VAL false
0.date_time_unknown:
VAL true
0.duty_cycle:
VAL 0
0.heating_cooling:
VAL 0
0.humidity_alarm:
VAL false
0.operating_voltage:
VAL 0.000000
0.rssi_device:
VAL -83
0.rssi_peer:
VAL 188
0.temperature_limiter:
VAL false
0.unreach:
VAL 0
0.update_pending:
VAL false
1.dew_point_alarm:
VAL 0
1.emergency_operation:
VAL 0
1.external_clock:
VAL 0
1.frost_protection:
VAL 0
1.humidity_limiter:
VAL 0
1.state:
VAL 0
10.dew_point_alarm:
VAL false
10.emergency_operation:
VAL false
10.external_clock:
VAL false
10.frost_protection:
VAL false
10.humidity_limiter:
VAL false
10.state:
VAL false
2.dew_point_alarm:
VAL 0
2.emergency_operation:
VAL 0
2.external_clock:
VAL 0
2.frost_protection:
VAL 0
2.humidity_limiter:
VAL 0
2.state:
VAL 1
3.dew_point_alarm:
VAL false
3.emergency_operation:
VAL false
3.external_clock:
VAL false
3.frost_protection:
VAL false
3.humidity_limiter:
VAL false
3.state:
VAL false
4.dew_point_alarm:
VAL false
4.emergency_operation:
VAL false
4.external_clock:
VAL false
4.frost_protection:
VAL false
4.humidity_limiter:
VAL false
4.state:
VAL false
5.dew_point_alarm:
VAL false
5.emergency_operation:
VAL false
5.external_clock:
VAL false
5.frost_protection:
VAL false
5.humidity_limiter:
VAL false
5.state:
VAL false
6.dew_point_alarm:
VAL false
6.emergency_operation:
VAL false
6.external_clock:
VAL false
6.frost_protection:
VAL false
6.humidity_limiter:
VAL false
6.state:
VAL false
7.dew_point_alarm:
VAL false
7.emergency_operation:
VAL false
7.external_clock:
VAL false
7.frost_protection:
VAL false
7.humidity_limiter:
VAL false
7.state:
VAL false
8.dew_point_alarm:
VAL false
8.emergency_operation:
VAL false
8.external_clock:
VAL false
8.frost_protection:
VAL false
8.humidity_limiter:
VAL false
8.state:
VAL false
9.dew_point_alarm:
VAL false
9.emergency_operation:
VAL false
9.external_clock:
VAL false
9.frost_protection:
VAL false
9.humidity_limiter:
VAL false
9.state:
VAL false
Attributes:
IODev ccu
ccureadingformat datapoint
event-on-change-reading .*
room HMIP-Test
stateFormat Kanal 1: 1.STATE /2: 2.STATE /3: 3.STATE /4: 4.STATE /5: 5.STATE /6: 6.STATE /7: 7.STATE /8: 8.STATE /9: 9.STATE /10: 10.STATE /
Ich bin für jede Idee dankbar.
VG
Christian
PS: Falls das hier der falsche Bereich für die Frage ist, ich stelle das auch gerne um.
Der Feuchtigkeitsalarm wird wohl von der aktuellen Firmware nicht unterstützt. Das war die Aussage eines Elv Mitarbeiters im Elv Forum (Okt. 2016).
Ich nehme an, die Luftfeuchte wird gemessen und angezeigt. Dann bau Dir doch ein Script in der CCu, das diese auswertet.
Für die fehlenden Kanäle: Bitte mal get deviceinfo ausführen.
Hallo Zap,
okay, ich werde dazu nochmal ein Ticket bei EQ3 eröffnen und versuchen ein Datum etc zu bekommen.
Hier die Deviceonfo:
CHN 0005D5699CF148:0 Fussbodenheizung:0
DPT {b} HmIP-RF.0005D5699CF148:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:0.DATE_TIME_UNKNOWN = true [RE]
DPT {b} HmIP-RF.0005D5699CF148:0.DUTY_CYCLE = false [RE]
DPT {i} HmIP-RF.0005D5699CF148:0.HEATING_COOLING = 0 [RWE]
DPT {b} HmIP-RF.0005D5699CF148:0.HUMIDITY_ALARM = false [RE]
DPT {f} HmIP-RF.0005D5699CF148:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {n} HmIP-RF.0005D5699CF148:0.RSSI_DEVICE = 176 [RE]
DPT {n} HmIP-RF.0005D5699CF148:0.RSSI_PEER = 188 [RE]
DPT {b} HmIP-RF.0005D5699CF148:0.TEMPERATURE_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:0.UNREACH = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:0.UPDATE_PENDING = false [RE]
CHN 0005D5699CF148:1 HmIP-FAL230-C10 0005D5699CF148:1
DPT {b} HmIP-RF.0005D5699CF148:1.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:1.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:1.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:1.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:1.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:1.STATE = false [RE]
CHN 0005D5699CF148:2 HmIP-FAL230-C10 0005D5699CF148:2
DPT {b} HmIP-RF.0005D5699CF148:2.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:2.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:2.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:2.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:2.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:2.STATE = false [RE]
CHN 0005D5699CF148:3 HmIP-FAL230-C10 0005D5699CF148:3
DPT {b} HmIP-RF.0005D5699CF148:3.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:3.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:3.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:3.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:3.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:3.STATE = false [RE]
CHN 0005D5699CF148:4 HmIP-FAL230-C10 0005D5699CF148:4
DPT {b} HmIP-RF.0005D5699CF148:4.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:4.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:4.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:4.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:4.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:4.STATE = false [RE]
CHN 0005D5699CF148:5 HmIP-FAL230-C10 0005D5699CF148:5
DPT {b} HmIP-RF.0005D5699CF148:5.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:5.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:5.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:5.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:5.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:5.STATE = false [RE]
CHN 0005D5699CF148:6 HmIP-FAL230-C10 0005D5699CF148:6
DPT {b} HmIP-RF.0005D5699CF148:6.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:6.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:6.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:6.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:6.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:6.STATE = false [RE]
CHN 0005D5699CF148:7 HmIP-FAL230-C10 0005D5699CF148:7
DPT {b} HmIP-RF.0005D5699CF148:7.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:7.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:7.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:7.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:7.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:7.STATE = false [RE]
CHN 0005D5699CF148:8 HmIP-FAL230-C10 0005D5699CF148:8
DPT {b} HmIP-RF.0005D5699CF148:8.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:8.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:8.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:8.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:8.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:8.STATE = false [RE]
CHN 0005D5699CF148:9 HmIP-FAL230-C10 0005D5699CF148:9
DPT {b} HmIP-RF.0005D5699CF148:9.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:9.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:9.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:9.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:9.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:9.STATE = false [RE]
CHN 0005D5699CF148:10 HmIP-FAL230-C10 0005D5699CF148:10
DPT {b} HmIP-RF.0005D5699CF148:10.DEW_POINT_ALARM = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:10.EMERGENCY_OPERATION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:10.EXTERNAL_CLOCK = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:10.FROST_PROTECTION = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:10.HUMIDITY_LIMITER = false [RE]
DPT {b} HmIP-RF.0005D5699CF148:10.STATE = false [RE]
VG
Christian
Hier meine Beispielconf eines HM-WDS30-OT2-SM Differenz-Temperatur-Sensor.
https://wiki.fhem.de/wiki/HM-WDS30-OT2-SM_Differenz-Temperatur-Sensor (https://wiki.fhem.de/wiki/HM-WDS30-OT2-SM_Differenz-Temperatur-Sensor)
Ich benutze ihn um die Temperatur beider Matratzen meines Wasserbettes zu messen.
Leider bekomme ich auch den Channel 5 angezeigt, der Stand jetzt nicht benötigt wird und pro Channel die Lowbat Anzeige.
Wie ich diese aus den Readings bekomme, weiß ich nicht.
Vielleicht kann mir jemand noch einen Tip geben, wenn nicht, ist auch nicht schlimm. Ist für die Funktion nicht wichtig.
@Zap, wenn du noch zusätziche Verbesserungsvorschläge hast... nur zu :)
define HM_WDS30_OT2_SM1 HMCCUDEV WDS30_OT2_SM1
attr HM_WDS30_OT2_SM1 IODev HM_CCU2
attr HM_WDS30_OT2_SM1 ccureadingfilter (^TEMPERATURE)
attr HM_WDS30_OT2_SM1 stateFormat T1: WDS30_OT2_SM1.1.TEMPERATURE°C T2: WDS30_OT2_SM1.2.TEMPERATURE°C
attr HM_WDS30_OT2_SM1 stripnumber 1
CHN NEQ1234711:0 WDS30_OT2_SM1:0
DPT {b} BidCos-RF.NEQ1234711:0.UNREACH = false [RE]
DPT {b} BidCos-RF.NEQ1234711:0.STICKY_UNREACH = false [RWE]
DPT {b} BidCos-RF.NEQ1234711:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.NEQ1234711:0.LOWBAT = false [RE]
DPT {n} BidCos-RF.NEQ1234711:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.NEQ1234711:0.RSSI_PEER = 199 [RE]
DPT {b} BidCos-RF.NEQ1234711:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.NEQ1234711:0.UPDATE_PENDING = false [RE]
CHN NEQ1234711:1 WDS30_OT2_SM1:1
DPT {f} BidCos-RF.NEQ1234711:1.TEMPERATURE = 26.000000 [RE]
DPT {b} BidCos-RF.NEQ1234711:1.LOWBAT = false [RE]
CHN NEQ1234711:2 WDS30_OT2_SM1:2
DPT {f} BidCos-RF.NEQ1234711:2.TEMPERATURE = 26.800000 [RE]
DPT {b} BidCos-RF.NEQ1234711:2.LOWBAT = false [RE]
CHN NEQ1234711:3 WDS30_OT2_SM1:3
DPT {f} BidCos-RF.NEQ1234711:3.TEMPERATURE = -0.800000 [RE]
DPT {b} BidCos-RF.NEQ1234711:3.LOWBAT = false [RE]
CHN NEQ1234711:4 WDS30_OT2_SM1:4
DPT {f} BidCos-RF.NEQ1234711:4.TEMPERATURE = 0.800000 [RE]
DPT {b} BidCos-RF.NEQ1234711:4.LOWBAT = false [RE]
CHN NEQ1234711:5 WDS30_OT2_SM1:5
DPT {f} BidCos-RF.NEQ1234711:5.TEMPERATURE = 0.000000 [RE]
DPT {b} BidCos-RF.NEQ1234711:5.LOWBAT = false [RE]
R-WDS30_OT2_SM1.BURST_RX
R-WDS30_OT2_SM1.CYCLIC_INFO_MSG_DIS
R-WDS30_OT2_SM1.LOCAL_RESET_DISABLE
R-WDS30_OT2_SM1.PARAM_SELECT
@chris8888: keine Ahnung wie die fehlenden Kanäle zustande kommen. Ich habe keine Limitierung in HMCCU.
@rubinho: ich schaue es mir an und nehme es in die Templates auf.
Hallo,
ich versuche gerade meine IP Funksteckdose einzurichten, aber ich habe das Problem, dass die Steckdose zwar reagiert, wenn ich on und off klicke, aber der Staus nicht aktualisiert wird (die Lampe in der Info bleibt auf). Erst wenn ich "get devstate" ausführe aktualisiert sich die Lampe.
defmod CCU_WZ_LICHT_SOFA HMCCUDEV WZ_LICHT_SOFA
attr CCU_WZ_LICHT_SOFA IODev CCU
attr CCU_WZ_LICHT_SOFA alias Wohnzimmer Licht Sofa
attr CCU_WZ_LICHT_SOFA ccureadingfilter (STATE)
attr CCU_WZ_LICHT_SOFA ccureadingformat datapoint
attr CCU_WZ_LICHT_SOFA ccureadings 1
attr CCU_WZ_LICHT_SOFA event-on-change-reading .*
attr CCU_WZ_LICHT_SOFA event-on-update-reading .*
attr CCU_WZ_LICHT_SOFA group Wohnzimmer Licht
attr CCU_WZ_LICHT_SOFA room Wohnzimmer,ccu
attr CCU_WZ_LICHT_SOFA statechannel 3
attr CCU_WZ_LICHT_SOFA statedatapoint 3.STATE
attr CCU_WZ_LICHT_SOFA statevals on:true,off:false
attr CCU_WZ_LICHT_SOFA substitute STATE!true:on,false:off,1:on,0:off
Der RPC Server ist gestartet? Das Attribut rpcport in CCU steht auf 2010 oder 2001,2010? Falls nicht, ändern und den RPC Server stoppen und wieder starten.
Zitat von: zap am 26 Januar 2017, 07:20:28
Der RPC Server ist gestartet? Das Attribut rpcport in CCU steht auf 2010 oder 2001,2010? Falls nicht, ändern und den RPC Server stoppen und wieder starten.
Also in den Einstellung der CCU habe ich:
rpcport: 2001,2010,9292
Meine Heizung, normal HM Thermostate, funktioniert einwandfrei.
Hier die komplette Definition meiner CCU:
defmod CCU HMCCU 192.168.188.30
attr CCU room ccu,control
attr CCU rpcinterval 5
attr CCU rpcport 2001,2010,9292
attr CCU rpcqueue /tmp/ccuqueue
attr CCU rpcserver on
attr CCU stateFormat rpcstate/state
EDIT:OK anscheinend war ich zu ungeduldig, der Intervall steht bei der CCU ja auf 5 Sekunden, nach dem ich den auf 2 geändert habe, reagiert das ganze auch einigermaßen Zeitnah.
Ich weiß nicht, ob der irgendwo auf den vielen Seiten schon war, aber mal ein Vorschlag von mir für den HmIP-SMI :
Attributes:
IODev d_ccu
ccureadingfilter (^UNREACH|LOW_BAT|ILLUMINATION|MOTION)
ccureadingformat datapointlc
ccureadingname 1.ILLUMINATION:brightness
event-on-change-reading .*
statedatapoint 1.MOTION
substitute LOW_BAT!(0|false):ok,(1|true):not ok;;UNREACH,MOTION!(0|false):no,(1|true):yes
Details zu dem Device:
Hmccu:
Dp:
0.config_pending:
VAL false
0.duty_cycle:
VAL false
0.error_code:
VAL 0
0.low_bat:
VAL false
0.operating_voltage:
VAL 3.000000
0.rssi_device:
VAL 201
0.rssi_peer:
VAL 0
0.sabotage:
VAL false
0.unreach:
VAL false
0.update_pending:
VAL false
1.illumination:
VAL 16.300000
1.motion:
VAL false
1.motion_detection_active:
VAL true
Hallo!
Ich hoffe ist nicht off-topic, soll auch kein Doppel-Post sein aber vielleicht könnt Ihr mir hier eher helfen:
brauche mal Hilfe beim Syntax vom homebridgeMapping für die HMCCU Devices.
Wenn ich im Thermostat-Device (HM-CC-TC)
clear
CurrentTemperature=1.TEMPERATURE,subtype=Temperature
TargetTemperature=datapoint::2.SETPOINT,minValue=6,maxValue=30,minStep=0.5
CurrentRelativeHumidity=1.HUMIDITY
fürs homebridgeMapping
setze, werden zwar die Temperaturen im Homekit korrekt angezeigt, ich kann aber die Temperatur nicht setzen.
In der homebridge Konsole kommt nur
https://127.0.0.1:8083/fhem?cmd=set%20HM_CC_TC_EG_WZ%20datapoint%2022&XHR=1
an, es fehlt das "2.SETPOINT" vor der Temperatur.
Wie muss der Syntax sein damit der Befehl
set <Gerätename> datapoint 2.SETPOINT <Temperatur>
im fhem ankommt?
Grüsse
Sven
Kenne mich mit Homebridge nicht aus. Bin Alexa verfallen ;-)
Du könntest datapoint 2.SETPOINT durch eventMap ersetzen. Damit wärst Du das Leerzeichen los. Nur ne Idee ...
Zitat von: zap am 30 Januar 2017, 22:26:17
Kenne mich mit Homebridge nicht aus. Bin Alexa verfallen ;-)
Du könntest datapoint 2.SETPOINT durch eventMap ersetzen. Damit wärst Du das Leerzeichen los. Nur ne Idee ...
Alexa wollte ich immer mal testen... Hab halt iOS Geräte da und die können das ja eigentlich auch...
Also im attr eventMap zum Beispiel
/datapoint 2.SETPOINT:set_temp
hinzufügen?
Dann geht set <devicename> set_temp <temp> nicht...
hab ich noch nen Tippfehler drin?
Ich hab es nun über
TargetTemperature=control::2.SETPOINT,minValue=6,maxValue=30,minStep=0.5
gelöst, man kann das Gerät über die default Attribute ja mit set <name> control <temp> steuern.
Nur dauert es 1-2 Minuten bis das Reading aktualisiert wird.
Gruß
Sven
Wenn du controldatapoint auf 2.SETPOINT setzt, müsste doch eigentlich das 2.SETPOINT aus der Regel raus, oder? Gut, ich kenne mich damit nicht aus.
Zitat von: zap am 31 Januar 2017, 07:26:00
Wenn du controldatapoint auf 2.SETPOINT setzt, müsste doch eigentlich das 2.SETPOINT aus der Regel raus, oder? Gut, ich kenne mich damit nicht aus.
Ja aber wenn ich in der Regel 2.SETPOINT rausnehme, also
TargetTemperature=control::2.SETPOINT,minValue=6,maxValue=30,minStep=0.5
ändere auf
TargetTemperature=control,minValue=6,maxValue=30,minStep=0.5
kommt in der homebridge Konsole kein Befehl mehr an.
Letztendlich hab ich so lange probiert bis es funktioniert hat ... ::)
Die gesamte Regel sieht jetzt so aus:
clear
CurrentTemperature=1.TEMPERATURE,subtype=Temperature
TargetTemperature=control::2.SETPOINT,minValue=6,maxValue=30,minStep=0.5
CurrentRelativeHumidity=1.HUMIDITY
StatusLowBattery=:0.LOWBAT
Damit stimmt zumindest Feuchte, aktuelle Temp, gesetzte Temp und ich kann die Temperatur setzen.
Nur Battery funzt noch nicht (Reading hat die Werte BATTERY_LEVEL_NORMAL oder BATTERY_LEVEL_LOW)
und es wäre nett wenn man zwischen Auto und Manu Mode umschalten können
(momentan kann ich in der eve App standardmässig zwischen Auto, Aus, Heat und Cool umschalten)
Gruß
Sven
Hi Leute,
habe dank dem Beitrag hier meine HMip-BSM UP Schaltaktor zum laufen bekommen.
hier mal meine Definition und dann hätte ich auch noch eine Frage.
define HM_Licht_Treppenhaus_EG HMCCUDEV 000855699C4CAF 4
attr HM_Licht_Treppenhaus_EG IODev d_ccu
attr HM_Licht_Treppenhaus_EG alias Licht Treppenhaus EG
attr HM_Licht_Treppenhaus_EG ccureadingfilter (STATE)
attr HM_Licht_Treppenhaus_EG controldatapoint 4.STATE
attr HM_Licht_Treppenhaus_EG event-on-change-reading .*
attr HM_Licht_Treppenhaus_EG group Licht
attr HM_Licht_Treppenhaus_EG room Homekit,Homematic,Treppenhaus
attr HM_Licht_Treppenhaus_EG statechannel 4
attr HM_Licht_Treppenhaus_EG statedatapoint 4.STATE
attr HM_Licht_Treppenhaus_EG statevals on:true,off:false
attr HM_Licht_Treppenhaus_EG substitute STATE!(0|false):off,(1|true):on
folgendes steht in der deviceinfo
CHN 000855699C4CAF:0 Licht Treppenhaus EG:0
DPT {f} HmIP-RF.000855699C4CAF:0.ACTUAL_TEMPERATURE = 0.000000 [RE]
DPT {b} HmIP-RF.000855699C4CAF:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000855699C4CAF:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.000855699C4CAF:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.000855699C4CAF:0.ERROR_OVERHEAT = false [RE]
DPT {f} HmIP-RF.000855699C4CAF:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {n} HmIP-RF.000855699C4CAF:0.RSSI_DEVICE = 189 [RE]
DPT {n} HmIP-RF.000855699C4CAF:0.RSSI_PEER = 192 [RE]
DPT {b} HmIP-RF.000855699C4CAF:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000855699C4CAF:0.UPDATE_PENDING = false [RE]
CHN 000855699C4CAF:1 HmIP-BSM 000855699C4CAF:1
DPT {b} HmIP-RF.000855699C4CAF:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.000855699C4CAF:1.PRESS_SHORT = [E]
CHN 000855699C4CAF:2 HmIP-BSM 000855699C4CAF:2
DPT {b} HmIP-RF.000855699C4CAF:2.PRESS_LONG = [E]
DPT {b} HmIP-RF.000855699C4CAF:2.PRESS_SHORT = [E]
CHN 000855699C4CAF:3 HmIP-BSM 000855699C4CAF:3
DPT {i} HmIP-RF.000855699C4CAF:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000855699C4CAF:3.SECTION = 0 [RE]
DPT {b} HmIP-RF.000855699C4CAF:3.STATE = false [RE]
CHN 000855699C4CAF:4 Licht Treppenhaus EG
DPT {f} HmIP-RF.000855699C4CAF:4.ON_TIME = [W]
DPT {i} HmIP-RF.000855699C4CAF:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000855699C4CAF:4.SECTION = 0 [RE]
DPT {b} HmIP-RF.000855699C4CAF:4.STATE = false [RWE]
CHN 000855699C4CAF:5 HmIP-BSM 000855699C4CAF:5
DPT {f} HmIP-RF.000855699C4CAF:5.ON_TIME = [W]
DPT {i} HmIP-RF.000855699C4CAF:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000855699C4CAF:5.SECTION = 0 [RE]
DPT {b} HmIP-RF.000855699C4CAF:5.STATE = false [RWE]
CHN 000855699C4CAF:6 HmIP-BSM 000855699C4CAF:6
DPT {f} HmIP-RF.000855699C4CAF:6.ON_TIME = [W]
DPT {i} HmIP-RF.000855699C4CAF:6.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000855699C4CAF:6.SECTION = 0 [RE]
DPT {b} HmIP-RF.000855699C4CAF:6.STATE = false [RWE]
CHN 000855699C4CAF:7 HmIP-BSM 000855699C4CAF:7
DPT {f} HmIP-RF.000855699C4CAF:7.CURRENT = 0.000000 [RE]
DPT {f} HmIP-RF.000855699C4CAF:7.ENERGY_COUNTER = 178.500000 [RE]
DPT {b} HmIP-RF.000855699C4CAF:7.ENERGY_COUNTER_OVERFLOW = false [RE]
DPT {f} HmIP-RF.000855699C4CAF:7.FREQUENCY = 50.010000 [RE]
DPT {f} HmIP-RF.000855699C4CAF:7.POWER = 0.000000 [RE]
DPT {f} HmIP-RF.000855699C4CAF:7.VOLTAGE = 225.800000 [RE]
Jetzt zu meiner Frage.
Weiß zufällig jemand wie ich denn den langen Tastendruck auswerten kann(Kanal 1und 2)?
Grüße
Zitat von: zentis666 am 31 Januar 2017, 22:34:26
Ja aber wenn ich in der Regel 2.SETPOINT rausnehme, also
TargetTemperature=control::2.SETPOINT,minValue=6,maxValue=30,minStep=0.5
ändere auf
TargetTemperature=control,minValue=6,maxValue=30,minStep=0.5
kommt in der homebridge Konsole kein Befehl mehr an.
Letztendlich hab ich so lange probiert bis es funktioniert hat ... ::)
Die gesamte Regel sieht jetzt so aus:
clear
CurrentTemperature=1.TEMPERATURE,subtype=Temperature
TargetTemperature=control::2.SETPOINT,minValue=6,maxValue=30,minStep=0.5
CurrentRelativeHumidity=1.HUMIDITY
StatusLowBattery=:0.LOWBAT
Damit stimmt zumindest Feuchte, aktuelle Temp, gesetzte Temp und ich kann die Temperatur setzen.
Nur Battery funzt noch nicht (Reading hat die Werte BATTERY_LEVEL_NORMAL oder BATTERY_LEVEL_LOW)
und es wäre nett wenn man zwischen Auto und Manu Mode umschalten können
(momentan kann ich in der eve App standardmässig zwischen Auto, Aus, Heat und Cool umschalten)
Gruß
Sven
Hallo Sven,
so klappt es mit meinen Wandthermostaten:
TargetHeatingCoolingState=1.SET_POINT_MODE::1.SET_POINT_MODE,values=OFF:1;AUTO:0;HEAT:3;COOL:2,cmds=OFF:datapoint+1.CONTROL_MODE+1;HEAT:datapoint+1.BOOST_MODE+1;COOL:datapoint+1.BOOST_MODE+0;AUTO:datapoint+1.CONTROL_MODE+0
Off ist Manuell, Heat ist der Boost, Cold ist dann Boost off und Auto ist Auto....damit komme ich gut zurecht.
Und versuche mal bei deinem targetTemperature mit der Option: nocache=true , damit wird der gesetzte Wert bei mir fast ohne Verzögerung aktuallisiert.
VG
Christian
Kann man eigentlich auch den Leistungsmesser + Schaltaktor HM-ES-PMSw1-Pl-DN-R1 nutzen, um Stom + Leistung auszulesen?
Klar, verwende ich auch.
Super, könntest du vielleicht eine Beispielkonfiguration posten?
ist in HMCCUConf.pm enthalten. Du kannst also einfach ein HMCCUDEV Device definieren und dann für das Device den Befehl "set defaults" aufrufen. Die entsprechenden Readings für Strom und Leistung werden dann ausgelesen.
Servus, hat irgendwer eine Beispiel konfi für folgende Geräte:
HM-MOD-Re-8 relaiskarte 8fach
HM-SwI-3-FM Tasterschnittstelle
Danke schon mal an alle
Würde mich auch über eine Konfig für einen
HM-LC-Sw1-Ba-PCB freuen
defaults meint:
HMCCUCHN: HM_GH_EG_SA2 HMCCU: No default attributes found
LG
ich kann dir meine geben:
template
device:HM-LC-Sw1-Ba-PCB
_description=1 Kanal Funk Schaltaktor für Batteriebetrieb
statedatapoint=1.STATE
statevals=on:true,off:false
substitute=STATE!1:on,0:off,false:off,true:on
verbose=1
ccudef-readingname kümmrt sich um die readingsbennung und da habe ich noch beide readings (0.LOWBAT und battery zb)
und ein list:
Zitat
Internals:
DEF az_sw_sw02
IODev CCU01
NAME az_sw_sw02
NR 86
STATE off
TYPE HMCCUDEV
ccuaddr MEQ0591915
ccudevstate active
ccuif BidCos-RF
ccuname az_sw_sw02
ccutype HM-LC-Sw1-Ba-PCB
channels 2
firmware 1.7
statevals devstate|on|off
Readings:
2017-04-18 18:30:00 0.CONFIG_PENDING false
2017-04-18 18:30:00 0.DEVICE_IN_BOOTLOADER false
2017-04-18 18:30:00 0.DUTYCYCLE false
2017-04-18 18:30:00 0.LOWBAT ok
2017-04-18 18:30:00 0.RSSI_DEVICE 1
2017-04-18 18:30:00 0.RSSI_PEER 191
2017-04-18 18:30:00 0.STICKY_UNREACH false
2017-04-18 18:30:00 0.UPDATE_PENDING false
2017-04-18 18:30:00 1.INHIBIT unlocked
2017-04-20 21:28:17 1.STATE off
2017-04-20 21:28:17 1.WORKING false
2017-04-18 18:30:00 Activity alive
2017-04-18 18:30:00 battery ok
2017-04-20 21:28:17 hmstate off
2017-04-18 18:30:00 sign off
2017-04-20 21:28:17 state off
Hmccu:
Dp:
0.aes_key:
VAL 0
0.config_pending:
VAL false
0.device_in_bootloader:
VAL false
0.dutycycle:
VAL false
0.lowbat:
VAL false
0.rssi_device:
VAL 1
0.rssi_peer:
VAL 191
0.sticky_unreach:
VAL false
0.unreach:
VAL false
0.update_pending:
VAL false
1.inhibit:
VAL false
1.state:
VAL 0
1.working:
VAL 0
Attributes:
DbLogExclude .*
IODev CCU01
ccureadingformat datapoint
group Schalter
room HM
statedatapoint 1.STATE
statevals on:true,off:false
substitute STATE!1:on,0:off,false:off,true:on
verbose 1
ich habe ihn nur als hmccudev eingebunden, channels macht ja nur beim 4fach bausatz sinn
Evtl auch für eine Wetterstation HM-WDS100-C6-O-2?
Und auch für den HM-PB-6-WM55
Wäre echt klasse!
HM-PB-6-WM55
template für
device (wobei man das nicht wirklich braucht und einfach channel 0 für devicestati wie battery einbinden kann)
device:HM-PB-6-WM55
_description=Funk-Wandtaster 6-fach
stateFormat=B: battery S: Activity
substitute=STATE!1:on,0:off,false:off,true:on
verbose=1
um die tastenbedienungen am gerät in fhem abzubilden (zb um per notify aktionen auszulösen) braucht es ein programm in der ccu (siehe anhang, bei mir nur für short gemacht da ich nicht lange drücke)
die channels selber braucht man nicht, außer man möchte aus fhem evtl den tasterbutton x selbst schalten (sehe ich keinen grund für) , die events kommen mit angelegtem device und dme program bereits in fhem an
Zitat2017-04-23 09:06:53 HMCCUDEV whg_pb6 6.PRESS_SHORT: 1
2017-04-23 09:06:53 HMCCUDEV whg_pb6 6.INSTALL_TEST: 1
2017-04-23 09:06:53 HMCCUDEV whg_pb6 hmstate: Initialized
Zitat von: Chiemgauer am 22 April 2017, 10:41:04
Servus, hat irgendwer eine Beispiel konfi für folgende Geräte:
HM-MOD-Re-8 relaiskarte 8fach
HM-SwI-3-FM Tasterschnittstelle
Danke schon mal an alle
Alle Mehrfachschalter haben gemein, dass sie in jedem Kanal identische Datenpunkte haben. Man muss also zunächst entscheiden, ob man die Kanäle einzeln ansprechen möchte (=> HMCCUCHN) oder gemeinsam (=> HMCCUDEV). Bei Events (also Aktualisierungen durch die CCU) ist das mehr oder weniger egal. Bei HMCCUDEV werden dann eben 3 oder 8 Kanäle in einem FHEM Device aktualisiert.
Beim Setzen von Werten gibt es bei der Verwendung von HMCCUDEV einige Nachteile. Z.B. kann man keinen statedatapoint festlegen, das es PRESS oder STATE eben 3 bzw. 8 Mal gibt. Das macht das Setzen von Zuständen etwas umständlicher, da man immer z.B. "set datapoint 1.STATE on" verwenden muss und nicht einfach "set on" oder "set off".
Grundsätzlich sollte man einfach immer erst mal "get deviceinfo" ausführen. Dann sieht man die verfügbaren Datenpunkte und auch, ob sie beschrieben oder nur gelesen werden können. Die lesbaren Datenpunkte, die man gerne als Reading hätte, packt man in das Attribut ccureadingfilter. Dann gibt man in statevals und substitute noch Übersetzungen der Werte an, sofern man das haben möchte.
Für die beiden o.g. Geräte könnten die Attribute bei HMCCUCHN so aussehen:
# HM-SwI-3-FM
ccureadingfilter = "PRESS",
statedatapoint = "PRESS",
statevals = "press:true",
substitute = "PRESS!(1|true):pressed,(0|false):released"
# HM-MOD-Re-8
ccureadingfilter ="(STATE|WORKING)",
statedatapoint = "STATE",
statevals = "on:true,off:false",
substitute = "STATE!(1|true):on,(0|false):off;WORKING!(1|true):yes,(0|false):no"
Bei HMCCUDEV ähnlich. Jedoch entfällt dort statedatapoint. Beide Definitionen habe ich als Defaults in HMCCUConf.pm aufgenommen und werden dann mit dem nächste Release verteilt.
Zitat von: Chiemgauer am 23 April 2017, 06:26:46
Evtl auch für eine Wetterstation HM-WDS100-C6-O-2?
Für HMCCUCHN:
ccureadingfilter = "(HUMIDITY|TEMPERATURE|WIND|RAIN|SUNSHINE|BRIGHTNESS)",
statedatapoint = "TEMPERATURE",
stripnumber = 1,
substitute = "RAINING!(1|true):yes,(0|false):no"
Auch hier nochmal der Tipp: mit get deviceinfo die verfügbaren Datenpunkte anzeigen lassen und dann entsprechende Attribute definieren. Oder hier nachlesen:
http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf
Servus zusammen,
wie kann ich einen Dimmer HM-LC-Dim1T-FM dazu bringen eine Aktion Dimmen von 100% auf 30% in 10 Sekunden (Dimmdauer) durch zu führen? Ist das möglich? Hat jemand eine Vorschlag?
Hi, die Frage ist hier sicherlich völlig OT.
Schau dir mal die Registerprogrammierung an...ein Anfang sollte das Register "shRampOffTime" sein.
Hier kannst du sicherlich die 10 Sek setzen...ob man einen definierten Endwert (30%, dann off) setzen kann weiß ich nicht.
Könnte das hier sein: shOnMinLevel. Wobei ich nicht weiß, ob dies beim Runterdimmer noch unterschritten wird.
Aber Versuch macht klug!
Viel Erfolg!
Christian
Die "Register" sind CUL_HM Terminologie. In HMCCU sind das Config-Parameter, die über folgende Befehle angesprochen werden:
set config
get config
get configdesc
get configlist
Der letzte Befehl ist der Einstieg. Da die Config Parameter nicht dokumentiert sind, führt man für das Device und die einzelnen Kanäle erst mal diesen Befehl aus und bekommt so eine Übersicht der möglichen Parameter.
Da sollte auch sowas wie die RAMP_TIME auftauchen. Die kannst Du dann mit set config setzen.
Hat schon jemand einen Regensensor HM-Sen-RD-O eingebunden?
Ev. eine Config für mich?
LG
Einbindung Regensensor:
Internals:
DEF MEQ1234567 1
IODev HMCCU2
NAME Garten.Regensensor
NR 1215
STATE off
TYPE HMCCUDEV
ccuaddr MEQ1234567
ccudevstate active
ccuif BidCos-RF
ccuname Garten.Regensensor
ccutype HM-Sen-RD-O
channels 3
firmware 1.4
statevals devstate
Readings:
2017-04-28 20:04:06 1.STATE off
2017-04-28 20:04:06 2.STATE off
2017-04-28 19:22:09 24h 12
2017-04-28 20:04:06 hmstate off
2017-04-28 20:04:06 state off
Hmccu:
Dp:
0.aes_key:
VAL 2
0.config_pending:
VAL false
0.device_in_bootloader:
VAL false
0.rssi_device:
VAL 1
0.rssi_peer:
VAL 1
0.sticky_unreach:
VAL false
0.unreach:
VAL false
0.update_pending:
VAL false
1.state:
VAL 0
2.inhibit:
VAL false
2.state:
VAL false
2.working:
VAL false
Attributes:
IODev HMCCU2
alias Regensensor
ccureadingfilter (STATE)
ccureadingformat datapoint
devStateIcon on:weather_rain@blue off:weather_cloudy Initialized:10px-kreis-gelb
devStateStyle style="text-align:right;"
event-on-change-reading .*
group Klima
icon weather_rain_meter
room Device,Garten
sortby 2
statechannel 1
substitute STATE!(0|false):off,(1|true):on
Die ersten 2 Kanäle steuern:
- Regen - ja/nein
- Heizung - an/aus
Ich habe mir ein notify gebaut, dass bei Regen oder unter 5 Grad die Heizung an- und ansonsten ausschaltet (spart Strom)
VG Yil
ZitatHM-PB-6-WM55
template für device (wobei man das nicht wirklich braucht und einfach channel 0 für devicestati wie battery einbinden kann)
Code: [Auswählen]
device:HM-PB-6-WM55
_description=Funk-Wandtaster 6-fach
stateFormat=B: battery S: Activity
substitute=STATE!1:on,0:off,false:off,true:on
verbose=1
um die tastenbedienungen am gerät in fhem abzubilden (zb um per notify aktionen auszulösen) braucht es ein programm in der ccu (siehe anhang, bei mir nur für short gemacht da ich nicht lange drücke)
die channels selber braucht man nicht, außer man möchte aus fhem evtl den tasterbutton x selbst schalten (sehe ich keinen grund für) , die events kommen mit angelegtem device und dme program bereits in fhem an
Zitat
2017-04-23 09:06:53 HMCCUDEV whg_pb6 6.PRESS_SHORT: 1
2017-04-23 09:06:53 HMCCUDEV whg_pb6 6.INSTALL_TEST: 1
2017-04-23 09:06:53 HMCCUDEV whg_pb6 hmstate: Initialized
* pb-6-pogram.JPG (101.31 kB, 1881x517 - angeschaut 5 Mal.)
Was bringt da das Programm. Ich möchte meine HM-Taster mit anderen Device, z.B. Logo 8, koppeln.
Viele der Homematic Taster generieren erst dann ein Event bei einem Tastendruck, wenn zumindest ein Dummy Programm in der CCU damit verknüpft ist. Wenn Du also einen Taster hast und in FHEM kommt kein PRESS_xx an, musst Du in der CCU ein solches Programm erstellen.
Hallo zusammen,
hat jemand eine vernünftige Definition für einen HM-PBI-4-FM (Funk-Tasterschnittstelle 4fach)? Eine Default-Konfig. konnte ich nicht finden. Ziel ist, dass der Schalter in fhem den Status on/off anzeigt, wenn er betätigt wurde. Beim HM-SCI-3-FM hat das problemlos geklappt, aber der HM-PBI-4-FM zeigt beharrlich nur "initialized" als Status, sowohl im Device als auch in den Channels.
VG Yil
Möglicherweise das gleiche Problem wie ich direkt vor Deinem Post beschrieben habe.
Zitat von: Yil am 08 Mai 2017, 15:14:30
Hallo zusammen,
hat jemand eine vernünftige Definition für einen HM-PBI-4-FM (Funk-Tasterschnittstelle 4fach)? Eine Default-Konfig. konnte ich nicht finden. Ziel ist, dass der Schalter in fhem den Status on/off anzeigt, wenn er betätigt wurde. Beim HM-SCI-3-FM hat das problemlos geklappt, aber der HM-PBI-4-FM zeigt beharrlich nur "initialized" als Status, sowohl im Device als auch in den Channels.
VG Yil
ich würde folgende Attribute empfehlen:
ccureadingfilter PRESS
substitute PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes
event-on-update-reading .*
Natürlich kannst Du statt pressed auch on schreiben in substitute.
Die Werte off oder released wird es aber nie geben, da bei einem Taster immer nur beim Drücken ein Wert von der CCU geschickt wird. Nur wenn nach einem langen Tastendruck losgelassen wird, kommt PRESS_LONG_RELEASE mit 1/true an.
Falls nach diesen Einstellungen trotzdem keine Events kommen, liegt es an der beschriebenen Eigenart der CCU, die bei einigen Schaltern und Tastern nur ein Event schickt, wenn mit einer Taste ein Aktor oder ein Programm verknüpft ist.
In der nächsten Version ist ein Template für den 4-fach Taster drin. Außerdem werde ich im Wiki beschreiben, wie man ein Dummy Programm für diese Taster in der CCU anlegt, damit die Events generiert werden.
Ich würde ne Config für eine Fernbedienung benötigen
Jemand erfolgreich eine angelegt?
Es handelt sich um eine HM-RC-Key4.
LG Thomas
Entweder Du definierst für jeden der 4 Kanäle ein HMCCUCHN Device oder ein HMCCUDEV für alle 4 Kanäle.
Attribute:
ccureadingfilter PRESS
event-on-update-reading .*
substitute PRESS_SHORT,PRESS_LONG!(1|true):pressed
Falls Du bei Tastendrücken keine Events in FHEM bekommst, musst Du in der CCU die einzelnen Kanäle mit einem Dummy-Programm verknüpfen (Eigenart der CCU bei manchen Geräten).
Bei Verwendung von HMCCUCHN vielleicht noch:
statedatapoint PRESS_SHORT
Hm, ich bilde mir ein gestern einmal kurz eine Config gehabt zu haben die mir den Short_Press angezeigt hat. Aber da nur dieser eine habe ich dann weiter herumprobiert.
Durchs herumprobieren hab ich wieder einiges umgestellt und seit dem finde ich diese Config nicht mehr.
Zitateinzelnen Kanäle mit einem Dummy-Programm verknüpfen
Die Kanäle sind eigentlich alle verknüpft in der CCU. Mit der Keymatic sowie einem Lichtschaltaktor.
EDIT: mit dem dummy Programm wird SHORT_PRESS und LONG_PRESS angezeigt
Mahlzeit ich Habe Gerade das Problem Eine Fernbedienung (HmIP-RC8)
anzulernen.
geht leider nicht wie ein normaler Taster.
Hat das schon jemand gemacht??
welche Atr.??
Schau dir mal das an, gleich der erste Abschnitt:
https://wiki.fhem.de/wiki/HMCCU_Best_Practice
Hilft vielleicht schon mal weiter.
Hier mal die Config
wenn man auf die fernbedienung drückt passiert leider nichts
Was liefert dir ein "get deviceinfo", nachdem du die Taste gedrückt hast?
Der RPC Server läuft und Readings anderer HMIP Geräte werden aktualisiert?
Hier deviceinfo
Ich denke du wirst wie bei den meisten Fernbedienungen die Tasten in der CCU mit einem Dummy Programm verknüpfen müssen, damit die CCU Events beim Dcken an FHEM schickt
Ich habe die Fernbedienung auch.
Sobald in der CCU2 eine Verknüpfung mit einem Dummy Device (die CCU2 stellt ja selber virtuelle zur Verfügung) herstellt, kommen auch die Tastenklicks schnell und sicher in FHEM an.
Guten Abend,
Hast du dafür eine Kurzanleitung bitte??
Zitat von: Manu1982 am 21 Juni 2017, 22:50:14
Guten Abend,
Hast du dafür eine Kurzanleitung bitte??
naja, du gehst auf die CCU2 und legst dort einfach eine Direktverknüpfung zwischen einem beliebigen Kanal der CCU2 und der entsprechenden Taste auf der Fernbedienung her. Kannst auch stattdessen ein Programm auf der CCU2 anlegen, dass aber letztlich im Ausführungsteil einfach nichts macht.
Das ist Standard-CCU2, also nichts FHEM-spezifisches.
Im Zweifel also einfach mal Google befragen oder in einem HomeMatic-Forum schauen.
Das lässt sich in der CCU über eine Verknüpfung mit einem der virtuellen CCU Kanäle (s. Beitrag von kjmEjfu) oder über ein Programm lösen. Ich bevorzuge die Programm-Methode, da ich gerne ein "Feedback" in einer Systemvariable habe, wenn eine Taste an der Fernbedienung gedrückt wurde. Die andere Variante ist allerdings deutlich einfacher (Anlegen von Verknüpfungen siehe Doku zur CCU):
1) Systemvariable in der CCU anlegen, Typ = Text
2) Programm anlegen. Bei jedem Tastendruck wird die Variable gesetzt:
"FB-BO:n" sind die Kanäle der Tasten. "fb_bo_aktion" ist der Name der Systemvariablen.
Ok Danke hat geklappt.
nun Habe ich ein Problem das sich der Bewegungsmelder (HmIP-SMO) nicht aktualisiert und dadurch auch nicht auslöst.
ist dort eine falsche Einstellung oder was habe ich falsch gemacht??
Hast du andere HMIP Geräte, die aktualisiert werden?
Hintegrund: du musst im IODev as Attribut rpcInterfaces um HamIp erweitern.
Außerdem wäre ein list von dem Bewegungsmelder hilfreich, damit ich alle Daten sehen kann
Guten Morgen,
Ich habe das Attribut in der CCU gesetzt keine Änderung
anbei deviceinfo
Hatte mit vertippt. rpcInterfaces muss HmIP-RF enthalten. Wenn das vorher nicht drin war, musst Du den RPC Server neu starten bzw wenn er noch gar nicht läuft, starten
Bitte außerdem mal die Ausgabe von "list ..." posten, wobei ... der Name des Bewegungsmelders in FHEM ist.
Danke es hat jetzt funktioniert.
Hallo, hat schon jemand von euch den HmIP-SPI am laufen??
Bei mir kommt das. >:(
ZitatHMCCUDEV: Bewegungsmelder.WZ. HMCCU: No default attributes found
ZitatCHN 000C17099A0520:0 HmIP-SPI 000C17099A0520:0
DPT {b} HmIP-RF.000C17099A0520:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000C17099A0520:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.000C17099A0520:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.000C17099A0520:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000C17099A0520:0.OPERATING_VOLTAGE = 2.900000 [RE]
DPT {n} HmIP-RF.000C17099A0520:0.RSSI_DEVICE = 198 [RE]
DPT {n} HmIP-RF.000C17099A0520:0.RSSI_PEER = 195 [RE]
DPT {b} HmIP-RF.000C17099A0520:0.SABOTAGE = false [RE]
DPT {b} HmIP-RF.000C17099A0520:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000C17099A0520:0.UPDATE_PENDING = false [RE]
CHN 000C17099A0520:1 HmIP-SPI 000C17099A0520:1
DPT {f} HmIP-RF.000C17099A0520:1.CURRENT_ILLUMINATION = 212.000000 [RE]
DPT {f} HmIP-RF.000C17099A0520:1.ILLUMINATION = 30.300000 [RE]
DPT {b} HmIP-RF.000C17099A0520:1.PRESENCE_DETECTION_ACTIVE = true [RWE]
DPT {b} HmIP-RF.000C17099A0520:1.PRESENCE_DETECTION_STATE = false [RE]
DPT {b} HmIP-RF.000C17099A0520:1.RESET_PRESENCE = [W]
Hi,
ganz frisch, hier mein erster Versuch:
ccureadingfilter (^PRESENCE|^ILLUMINATION|^LOW_BAT)
ccureadingformat datapoint
ccureadingname 0.(LOWBAT|LOW_BAT):+battery
controldatapoint 1.PRESENCE_DETECTION_ACTIVE
event-on-change-reading .*
eventMap /datapoint 1.RESET_PRESENCE 1:reset/datapoint 1.PRESENCE_DETECTION_ACTIVE 1:on/datapoint 1.PRESENCE_DETECTION_ACTIVE 0:off
genericDeviceType MotionSensor
icon message_presence
room Heizung
stateFormat Status: 1.PRESENCE_DETECTION_STATE Helligkeit: 1.ILLUMINATION Erkennung aktiv: 1.PRESENCE_DETECTION_ACTIVE
statechannel 1
statedatapoint 1.PRESENCE_DETECTION_STATE
statevals on:true,off:false
stripnumber 1
substitute 1.PRESENCE_DETECTION_STATE!(true|1):presence,(false|0):noPresence;LOW_BAT!(0|false):ok,(1|true):low;1.PRESENCE_DETECTION_ACTIVE!(0|false):off,(1|true):on
webCmd control
widgetOverride control:uzsuToggle,off,on
Verbesserung gerne!
VG
Christian
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
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
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
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
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.
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
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
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. 😤
Mach bitte mal ein list von Deinem Device und poste das.
Was genau meint List machen? Die Config des Device aus FHEM?
Siehe Anhang.
Viele Grüße
@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
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
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
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.
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.
Zitat von: zap am 10 Oktober 2017, 19:04:48
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. —> ohne Wirkung. Es passiert einfach nichts. Kein error oder sonstige Reaktion. Nur beim get deviceinfo zeigt er die damaligen Readings an.
Hallo,
leider bringt keine der Versuche die Readings zurück.
🙁 Hast du noch eine andere Idee?
Update: nachdem ich fhem neu gestartet habe wurden die readings LEVEL 3-6 in den readings angezeigt. Super! Es ist mir aber immer noch ein Rätsel wie ich es geschafft hab beim ersten mal alle möglichen readings einzubinden?
Vielen Dank nochmal für deine Hilfe. :D
Viele Grüsse
Desasterguy
Zitat von: zap am 10 Oktober 2017, 19:00:41
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.
Hab das so gemacht wie im Anhang. Leider klappt es nicht.
Mich irritiert auch das Reading in FHEM. Sieh zweiter Anhang.
0.UNREACH scheint doch nicht richtig, oder?
Doch, 0.UNREACH kann schon kommen, da der Statuskanal 0 immer eingebunden wird.
Mach mal ein get update für das Device. Werden dann Readings angezeigt?
Falls nicht, setzte mal das Attribut ccureadingfilter auf PRESS und mach nochmal get update
Hallo,
kann mir jemand auf die Sprünge helfen einen HmIP-PDT (Dimmer-Steckdose) einzubinden. Habe bereits zwei HmIP-PS am Laufen, d.h. die Anbindung von FHEM zur CCU2 funktioniert tadellos und da es für die HmIP-PS auch Defaults gibt ging das problemlos. Fuer jeden Tip dankbar !
Anbei die Device-Info:
CHN 000DD709A74B5F:0 EG_Arbeitszimmer_Test:0
DPT {f} HmIP-RF.000DD709A74B5F:0.ACTUAL_TEMPERATURE = 0.000000 [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.000DD709A74B5F:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.ERROR_OVERLOAD = false [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.ERROR_UPDATE = false [RE]
DPT {f} HmIP-RF.000DD709A74B5F:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {n} HmIP-RF.000DD709A74B5F:0.RSSI_DEVICE = 175 [RE]
DPT {n} HmIP-RF.000DD709A74B5F:0.RSSI_PEER = 0 [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000DD709A74B5F:0.UPDATE_PENDING = false [RE]
CHN 000DD709A74B5F:1 HmIP-PDT 000DD709A74B5F:1
DPT {b} HmIP-RF.000DD709A74B5F:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.000DD709A74B5F:1.PRESS_SHORT = [E]
CHN 000DD709A74B5F:2 HmIP-PDT 000DD709A74B5F:2
DPT {a} HmIP-RF.000DD709A74B5F:2.LEVEL = 0.230000 [RE]
DPT {i} HmIP-RF.000DD709A74B5F:2.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000DD709A74B5F:2.SECTION = 15 [RE]
CHN 000DD709A74B5F:3 HmIP-PDT 000DD709A74B5F:3
DPT {a} HmIP-RF.000DD709A74B5F:3.LEVEL = 0.230000 [RWE]
DPT {f} HmIP-RF.000DD709A74B5F:3.ON_TIME = [W]
DPT {i} HmIP-RF.000DD709A74B5F:3.PROCESS = 0 [RE]
DPT {f} HmIP-RF.000DD709A74B5F:3.RAMP_TIME = [W]
DPT {i} HmIP-RF.000DD709A74B5F:3.SECTION = 3 [RE]
CHN 000DD709A74B5F:4 HmIP-PDT 000DD709A74B5F:4
DPT {a} HmIP-RF.000DD709A74B5F:4.LEVEL = 0.000000 [RWE]
DPT {f} HmIP-RF.000DD709A74B5F:4.ON_TIME = [W]
DPT {i} HmIP-RF.000DD709A74B5F:4.PROCESS = 0 [RE]
DPT {f} HmIP-RF.000DD709A74B5F:4.RAMP_TIME = [W]
DPT {i} HmIP-RF.000DD709A74B5F:4.SECTION = 0 [RE]
CHN 000DD709A74B5F:5 HmIP-PDT 000DD709A74B5F:5
DPT {a} HmIP-RF.000DD709A74B5F:5.LEVEL = 0.000000 [RWE]
DPT {f} HmIP-RF.000DD709A74B5F:5.ON_TIME = [W]
DPT {i} HmIP-RF.000DD709A74B5F:5.PROCESS = 0 [RE]
DPT {f} HmIP-RF.000DD709A74B5F:5.RAMP_TIME = [W]
DPT {i} HmIP-RF.000DD709A74B5F:5.SECTION = 0 [RE]
CHN 000DD709A74B5F:6 HmIP-PDT 000DD709A74B5F:6
DPT {i} HmIP-RF.000DD709A74B5F:6.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.000DD709A74B5F:6.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
DPT {i} HmIP-RF.000DD709A74B5F:6.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = [W]
Hallo,
sorry, schon wieder ich - parallel dazu "kämpfe" ich auch noch mit einem HmIP-eTRV-2 (Heizkörperthermostat) - wenn es schon jemand gelungen ist den per HMCCU/anzusteuern wäre ich ebenfalls für jeden Tip dankbar ..
Anbei die Device Info:
CHN 000A17099E3CF9:0 EG_Arbeitszimmer_Heizkoerper_Test:0
DPT {b} HmIP-RF.000A17099E3CF9:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000A17099E3CF9:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.000A17099E3CF9:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.000A17099E3CF9:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {n} HmIP-RF.000A17099E3CF9:0.RSSI_DEVICE = 189 [RE]
DPT {n} HmIP-RF.000A17099E3CF9:0.RSSI_PEER = 192 [RE]
DPT {b} HmIP-RF.000A17099E3CF9:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000A17099E3CF9:0.UPDATE_PENDING = false [RE]
CHN 000A17099E3CF9:1 EG_Arbeitszimmer_Heizkoerper_Test:1
DPT {i} HmIP-RF.000A17099E3CF9:1.ACTIVE_PROFILE = 1 [WE]
DPT {f} HmIP-RF.000A17099E3CF9:1.ACTUAL_TEMPERATURE = 22.600000 [RE]
DPT {b} HmIP-RF.000A17099E3CF9:1.BOOST_MODE = false [WE]
DPT {i} HmIP-RF.000A17099E3CF9:1.BOOST_TIME = 0 [RE]
DPT {f} HmIP-RF.000A17099E3CF9:1.CONTROL_DIFFERENTIAL_TEMPERATURE = [WE]
DPT {i} HmIP-RF.000A17099E3CF9:1.CONTROL_MODE = [WE]
DPT {i} HmIP-RF.000A17099E3CF9:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.000A17099E3CF9:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.000A17099E3CF9:1.FROST_PROTECTION = false [RE]
DPT {f} HmIP-RF.000A17099E3CF9:1.LEVEL = 0.100000 [RWE]
DPT {b} HmIP-RF.000A17099E3CF9:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.000A17099E3CF9:1.PARTY_SET_POINT_TEMPERATURE = 0.000000 [RE]
DPT {s} HmIP-RF.000A17099E3CF9:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.000A17099E3CF9:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.000A17099E3CF9:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.000A17099E3CF9:1.SET_POINT_TEMPERATURE = 21.000000 [RWE]
DPT {b} HmIP-RF.000A17099E3CF9:1.SWITCH_POINT_OCCURED = false [RE]
DPT {b} HmIP-RF.000A17099E3CF9:1.VALVE_ADAPTION = [WE]
DPT {i} HmIP-RF.000A17099E3CF9:1.VALVE_STATE = 4 [RE]
DPT {i} HmIP-RF.000A17099E3CF9:1.WINDOW_STATE = 0 [WE]
Hi,
die Readings sind doch "Baugleich" zum HmIP-eTRV.
Den habe ich so eingebunden:
ccureadingfilter (^LOW_BAT|^ACTUAL_TEMPERATURE|^BOOST_MODE|^SET_POINT_MODE|^SET_POINT_TEMPERATURE|^LEVEL|^UNREACH)
ccureadingformat datapoint
ccureadingname 0.(LOWBAT|LOW_BAT):+battery
ccuscaleval LEVEL:0:1:0:100
controldatapoint 1.SET_POINT_TEMPERATURE
event-on-change-reading .*
eventMap /datapoint 1.CONTROL_MODE 1:Manu/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.PARTY_MODE true:Party/datapoint 1.BOOST_MODE true:Boost/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5/on/
genericDeviceType thermostat
homebridgeMapping TargetTemperature=control,minValue=10,maxValue=25,minStep=0.5 CurrentTemperature=1.ACTUAL_TEMPERATURE CurrentHeatingCoolingState=1.CONTROL_MODE TargetHeatingCoolingState=1.CONTROL_MODE::controlMode,values=/auto/:AUTO;/manual/:OFF/day/:HEAT;/night/:COOL,cmds=OFF:controlMode+manual;HEAT:controlMode+day;COOL:controlMode+night;AUTO:controlMode+auto
icon hc_wht_regler
stateFormat Ist: 1.ACTUAL_TEMPERATURE° Soll: 1.SET_POINT_TEMPERATURE° Ventil: 1.LEVEL%
statechannel 1
statedatapoint 1.SET_POINT_TEMPERATURE
stripnumber 1
substexcl control
substitute LOW_BAT!(0|false):ok,(1|true):low;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_STATE!(true|1):open,(false|0):closed;SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on
webCmd control
widgetOverride control:slider,12.0,0.5,30.5,1
Viele Grüße
Christian
Danke für die Hilfe. Ich nehme das so in die Defaults auf. Wird eigentlich CONTROL_MODE mittlerweile automatisch aktualisiert? Das war mal ein Bug in der CCU.
Der Datenpunkt fehlt übrigens in denem ccureadingfilter Attribut. Oder liefert SET_POINT_MODE den Modus? Dann müsste man substitute anpassen.
Zitat von: rolf am 22 Oktober 2017, 13:10:29
Hallo,
kann mir jemand auf die Sprünge helfen einen HmIP-PDT (Dimmer-Steckdose) einzubinden. Habe bereits zwei HmIP-PS am Laufen, d.h. die Anbindung von FHEM zur CCU2 funktioniert tadellos und da es für die HmIP-PS auch Defaults gibt ging das problemlos. Fuer jeden Tip dankbar !
Versuche mal die folgenden Attribute (HMCCUDEV) und sag mir, ob es funktioniert:
ccureadingfilter = "^LEVEL$",
ccuscaleval = "LEVEL:0:1:0:100",
controldatapoint = "3.LEVEL",
statedatapoint = "3.LEVEL",
statevals = "on:100,off:0",
stripnumber = 1,
substexcl = "control",
substitute = "LEVEL!#0-0:off,#1-100:on",
webCmd = "control:on:off",
widgetOverride = "control:slider,0,10,100"
Das stellt zwar nicht alle Features des Dimmers bereit, aber schalten sollte gehen.
Hallo Zap,
m.E. wird der Contro-Mode durchaus aktuallisiert, ich nutze den aber ehrlicherweise im Alltag nie. Er ist weiterhin auch nur als "WE" gekennzeichnet, also kein "R". Und damit wird der nicht als Reading dargestellt.
Und natürlich hast du Recht, den Filter muss man noch ergänzen. Ist mir nie aufgefallen, da ich den "Modus" über das Wandthermostat steuere.
Der Punkt Set-Point-Mode steuert nur "Auto" (=1) oder "Manuell" (=0). Aber damit kommt man eigentlich aus.
Viele Grüße
Christian
Zitat von: Chris8888 am 24 Oktober 2017, 16:55:50
m.E. wird der Contro-Mode durchaus aktuallisiert, ich nutze den aber ehrlicherweise im Alltag nie. Er ist weiterhin auch nur als "WE" gekennzeichnet, also kein "R". Und damit wird der nicht als Reading dargestellt.
E = Event, d.h. die CCU schickt den Wert und HMCCU stellt den als Reading dar. Nur ein "get update" aus FHEM funktioniert nicht. Das geht nur, wenn R gesetzt ist.
ZitatHi,
die Readings sind doch "Baugleich" zum HmIP-eTRV.
Danke für den Hinweis - hab die Definitionen 1:1 fuer meinen HmIP-eTRV-2 übernommen - funktioniert wunderbar - VIELEN DANK !!! :)
Zitat
Versuche mal die folgenden Attribute (HMCCUDEV) und sag mir, ob es funktioniert...
Funktioniert wunderbar - der Dimmer lässt sich schalten und regeln - sehr schoen ! Hab inzwischen auch einen HmIP-BDT (Unterputz-Dimmer) verbaut und mit den gleichen Definitionen funktioniert auch der. Musste fuer den HmIP-BDT nur den controldatapoint und statedatapoint auf "4.LEVEL" anpassen - DANKE !!
Zitat
Das stellt zwar nicht alle Features des Dimmers bereit, aber schalten sollte gehen.
Noch eine Frage zu den Dimmern - habe mehrere Homematic-Dimmer (z.B. HM-LC-Dim1T-Pl-3, HM-LC-DIM1T-FM..) im Haus die ich direkt per FHEM ansteuere - nutze dabei z.B. die Möglichkeit per "set EG_Schlafzimmer_Nachtischlampe 100 0 1800" die Dimmer langsam hochzufahren etc.... Ist so was per HMCCUDEV/CCU2 für eine Homematic IP-Dimmer auf lange Sicht auch umsetzbar ?
Das geht heute schon. Grundsätzlich verfolgt HMCCU einen generischen Ansatz. Du musst bei neuen Geräten nicht warten bis ich irgendwas implementieren. Jedes Gerät kann direkt über seine Datenpunkte mit dem Befehl "set datapoint" angesprochen werden
Bei Dimmern habe ich eine Ausnahme gemacht. Wenn es die Datenpunkte LEVEL, ON_TIME oder RAMP_TIME gibt, stehen weitere Set Befehle zur Verfügung: on-for-timer, pct. Set pct macht genau das was du willst. Siehe Commandref zu HMCCUCHN.
Zitat
Das geht heute schon.
Danke für die Aufklärung - langsam kapier ich die Funktionsweise. Das mit den pct-Befehlen funktioniert tatsächlich problemlos - super !
Werde wohl etwas Zeit investieren müssen um auch mit den Homematic IP-Geräten und insbesondere mit der CCU2 klar zu kommen. Wenn man bisher wie ich
nur mit FHEM gearbeitet hat braucht es etwas mit der "Denke" der CCU2 klar zu kommen, aber der Winter kommt ja :-)
Danke nochmal für den Support !
Hallo Zusammen,
ich habe ein kleines Problem mit dem "mapdatapoints" Befehl
Ich wollte zwei Heizkörperthermostate in eine Gruppe legen, was mit:
define HM_Wohnzimmer HMCCUDEV "HM.WZ.HZ INT0000001" group=WZ.Blumenfenster,WZ.Balkon
auch gut geklappt hat. nun wollte ich wie nach dem Beispiel auf der ersten Seite mit:
attr HM_Wohnzimmer mapdatapoints WZ.Balkon:2.SET_TEMPERATURE="HM.WZ.HZ INT0000001":1.SET_TEMPERATURE,WZ.Balkon:2.CONTROL_MODE="HM.WZ.HZ INT0000001":1.CONTROL_MODE
die Werte mappen, aber da bringt er mir leider einen Fehler:
HM_Wohnzimmer: unknown attribute mapdatapoints. Type 'attr HM_Wohnzimmer ?' for a detailed list.
attr HM_Wohnzimmer ?
bringt dann
HM_Wohnzimmer: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userReadings verbose IODev ccuackstate ccucalculate ccuflags ccureadingfilter ccureadingformat ccureadingname ccureadings ccuget ccuscaleval ccuverify disable hmstatevals statevals substexcl substitute statechannel statedatapoint controldatapoint stripnumber peer event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fp_Wohnung icon sortby webCmd webCmdLabel widgetOverride userattr
ein Update und shutdown restart habe ich schon durchgeführt.
Kann mir jemand sagen was ich hier falsch mache oder ob ich vielleicht speziell das HMCCUDEV Modul updaten muss aber ich nicht weiß wie?
Vielen Dank im Voraus
Gruß Andreas
Das Attribut mapdatapoints gibt es schon lange nicht mehr. Ist auch nicht mehr notwendig, da HMCCU nun virtuelle CCU Gerätegruppen direkt unterstützt. Ich bin mir allerdings nicht sicher, ob man solche Gruppen in der CCU auch nur mit 2 Thermostaten anlegen kann. Ich glaube, es muss zwingend ein Wandthermostat dabei sein. Aber Ausprobieren kostet nichts.
Du legst also zunächst in der CCU eine Gruppe an, der Du Deine Thermostate hinzufügst. Angenommen, das Gruppendevice in der CCU hat den Namen G-Heizung. Zu dieser Gruppe gehört ein Wandthermostat mit dem Namen WT-Wohnzimmer und ein Heizkörperthermostat mit dem Namen HK-Wohnzimmer. Dann machst Du erst mal ein "get devicelist" für das HMCCU Device. Dann definierst Du folgendes Device:
define G_Heizung HMCCUDEV G-Heizung group=WT-Wohnzimmer,HK-Wohnzimmer
Danach musst Du noch rpcInterfaces um die Schnittstelle für virtuelle Devices ergänzen und den RPC-Server neu starten. Das wars. Allerdings machen folgende Attribute das Ganze erst richtig komfortabel:
ccucalculate dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY
ccureadingfilter 1.(^ACTUAL|CONTROL|^SET_TEMP);(^WINDOW_OPEN|^VALVE)
ccureadingformat datapoint
ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;1.SET_TEMPERATURE$:desired-temp;1.ACTUAL_HUMIDITY$:humidity
cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
controldatapoint 1.SET_TEMPERATURE
event-on-change-reading .*
eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
stateFormat T: temperature° H: humidity% D: desired-temp° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE
statedatapoint 1.SET_TEMPERATURE
stripnumber 1
substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
webCmd control:Auto:Manu:Boost:on:off
widgetOverride control:slider,4.5,0.5,30.5,1
Übrigens: Man kann auch mehr Geräte in einer Gruppe zusammenfassen. Die CCU kümmert sich um alle Verknüpfungen. Meine größte Gruppe besteht aus 1xWandthermostat,2xHeizkörperthermostat und 3xFensterkontakt
Zitat von: chris1284 am 22 April 2017, 16:06:09
ich kann dir meine geben:
template
device:HM-LC-Sw1-Ba-PCB
_description=1 Kanal Funk Schaltaktor für Batteriebetrieb
statedatapoint=1.STATE
statevals=on:true,off:false
substitute=STATE!1:on,0:off,false:off,true:on
verbose=1
ccudef-readingname kümmrt sich um die readingsbennung und da habe ich noch beide readings (0.LOWBAT und battery zb)
und ein list:ich habe ihn nur als hmccudev eingebunden, channels macht ja nur beim 4fach bausatz sinn
Hallo,
vielen Dank für den Hinweis!
Hab das Template auch so bei mir eingebaut und es funktioniert astrein.
Nun Aber zwei kurze Fragen:
1. wird die Datei beim nächsten Update überschrieben?
2. Kann man das Device nicht einchecken, das es generell in der HMCCUconf.pm drin ist?
Vielen Dank und schönen Gruß
Lars
Ich checke es ein.
Ich habe nun alles mögliche probiert, um beim MP3 Funk-Gong eine betimmte MP3 auf der Speicherkarte abzuspielen.
define EG_Eingang_Klingel HMCCUDEV LEQ***
attr EG_Eingang_Klingel IODev d_ccu
attr EG_Eingang_Klingel ccureadingfilter STATE
attr EG_Eingang_Klingel eventMap /datapoint 1.STATE 1:led-on/datapoint 1.STATE 0:led-off/datapoint 2.STATE 1:sound-on/datapoint 2.STATE 0:sound-off
attr EG_Eingang_Klingel statedatapoint 1.STATE
attr EG_Eingang_Klingel statevals on:true,off:false
attr EG_Eingang_Klingel substitute STATE!(0|false):ledOff,(1|true):ledOn;;2.STATE!(0|false):soundOff,(1|true):soundOn
deviceinfo
CHN LEQ***:0 HM-OU-CFM-Pl LEQ***:0
DPT {b} BidCos-RF.LEQ***:0.UNREACH = false [RE]
DPT {b} BidCos-RF.LEQ***:0.STICKY_UNREACH = true [RWE]
DPT {b} BidCos-RF.LEQ***:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.LEQ***:0.LOWBAT = false [RE]
DPT {b} BidCos-RF.LEQ***:0.DUTYCYCLE = false [RE]
DPT {n} BidCos-RF.LEQ***:0.RSSI_DEVICE = 183 [RE]
DPT {n} BidCos-RF.LEQ***:0.RSSI_PEER = 221 [RE]
DPT {n} BidCos-RF.LEQ***:0.AES_KEY = 0 [R]
DPT {b} BidCos-RF.LEQ***:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.LEQ***:0.UPDATE_PENDING = false [RE]
CHN LEQ***:1 HM-OU-CFM-Pl EG Flur KlingelSignal
DPT {b} BidCos-RF.LEQ***:1.STATE = false [RWE]
DPT {f} BidCos-RF.LEQ***:1.ON_TIME = [W]
DPT {b} BidCos-RF.LEQ***:1.INHIBIT = false [RWE]
DPT {s} BidCos-RF.LEQ***:1.SUBMIT = [W]
DPT {b} BidCos-RF.LEQ***:1.INSTALL_TEST = [W]
DPT {b} BidCos-RF.LEQ***:1.WORKING = false [RE]
CHN LEQ***:2 HM-OU-CFM-Pl EG Flur KlingelSound
DPT {b} BidCos-RF.LEQ***:2.STATE = false [RWE]
DPT {f} BidCos-RF.LEQ***:2.ON_TIME = [W]
DPT {b} BidCos-RF.LEQ***:2.INHIBIT = false [RWE]
DPT {s} BidCos-RF.LEQ***:2.SUBMIT = [W]
DPT {b} BidCos-RF.LEQ***:2.INSTALL_TEST = [W]
DPT {b} BidCos-RF.LEQ***:2.WORKING = false [RE]
Ich habe es mit set Klingel datapoint 2.SUBMIT zahl,zahl,zahl,zahl versucht, aber egal wie ich es abwandel, es funktioniert nicht.
Hat es schon mal jemand geschafft?
Was ist mit 1.SUBMIT statt 2.SUBMIT?
Es kann auch helfen, den Wert in doppelte Hochkomma einzuschließen: ,,zahl,zahl,zahl,zahl"
Leider alles ohne Erfolg :(
Wie kann man das noch rausfinden?
Bei mir hat das mal so funktioniert
set mp3_gong datapoint 2.SUBMIT "1,1,108000,3"
Wobei die erste 1 glaube ich die Ausgabeart ist (LED oder Mp3)
Die zweite 1 die Anzahl der Wiederholungen
Die 108000 weiß ich nicht mehr wofür die war, finde den link auch gerade nicht
und die letzte Zahl ist dann eben das entsprechende MP3 File.
Hallo,
ich habe bei mir einige HMIP-STH, HMIP-eTRV, HMIP-SWDO und eine HmIP-WTH-2 mit einer CCU2 am laufen,
funktioniert alles wunderbrächtig und Reibungslos (Danke zap).
Jetzt würde ich noch gerne die Wochenprogramme an die Thermostate schicken, ist das möglich und wenn ja wie.
Beim HMCCU Thema bin ich erst auf Seite 21 von 103 habe da aber auch bisher nichts gefunden.
Das was ich gefunden habe bezieht sich auf einen CUL und den habe ich nicht.
Bin für jede Hilfe und tritt in die richtige Richtung dankbar.
Gruß
Johann
Das geht mit den Befehlen set config bzw get config. Und ich glaube, bei HMIP sind die Parameter sogar dokumentiert. Ist allerdings ne ziemliche Frickelei, da man die Zeitangaben in Minuten seit 0 Uhr umrechnen muss.
Doku: http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf
Tu dir das nicht an sondern mach diese Einstellungen in der CCU. Ist wesentlich schneller und in etwa das, was ich mit best of both worlds meine. Man muss nicht zwingend alles in FHEM machen.
Wenn es dich partout interessiert, mach erst mal ein get configlist auf das Device und dann mal noch eins auf die einzelnen Kanäle. Beim Thermostaten wirst du scrollen müssen ;-)
Wenn also dein Thermostat in FHEM xy heißt:
get xy configlist
get xy configlist 1
...
Die Anzahl Kanäle steht als Internal in der Device Def
Überzeugt ;D
Wie machst du das mit dem Profilwechsel, eine DropDown Liste rechts dazu hätte ich mir vorgestellt aber bekomme es nicht hin!
Bin noch newby und mit try and error unterwegs.
Ich habe soweit verstanden, das es um 1.ACTIVE_PROFILE geht aber wie ich das ins webCmd bekomme?????
Hallo,
ich bin ganz neu hier und gerade dabei meine HM-CC-RT-DN Thermostate in FHEM zu integrieren.
Hardware: CCU2 (YAHM auf raspi3 mit HM Funkmodul); FHEM selbst läuft virtuell - Debian
In der CCU2 habe ich eine Gruppe angelegt und die beiden Thermostate hinzugefügt, dies funktioniert auch alles.
Die Integration in FHEM funktioniert nur leider so halb und ich hoffe ihr könnt mir helfen. Habe schon min. 10 Threads ect gelesen und versucht aber besser wie jetzt bekomme ich es nicht hin.
define HZ_Wohnzimmer HMCCUDEV WZ_Heizung group=WZ_Fenster,WZ_Terrasse
attr HZ_Wohnzimmer IODev d_ccu
attr HZ_Wohnzimmer ccucalculate dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY
attr HZ_Wohnzimmer ccureadingfilter (^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|^VALVE|^CONTROL|^WINDOW_OPEN)
attr HZ_Wohnzimmer ccureadingformat datapoint
attr HZ_Wohnzimmer ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;;1.SET_TEMPERATURE$:desired-temp;;1.ACTUAL_HUMIDITY$:humidity
attr HZ_Wohnzimmer cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HZ_Wohnzimmer controldatapoint 1.SET_TEMPERATURE
attr HZ_Wohnzimmer event-on-change-reading .*
attr HZ_Wohnzimmer eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr HZ_Wohnzimmer hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
attr HZ_Wohnzimmer room 30_HomeMatic
attr HZ_Wohnzimmer stateFormat T: temperature° H: humidity% D: desired-temp° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE
attr HZ_Wohnzimmer statedatapoint 1.SET_TEMPERATURE
attr HZ_Wohnzimmer stripnumber 1
attr HZ_Wohnzimmer substexcl control
attr HZ_Wohnzimmer substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
attr HZ_Wohnzimmer webCmd control:Auto:Manu:Boost:on:off
attr HZ_Wohnzimmer widgetOverride control:slider,3.5,0.5,30.5,1
Wie man im Bild sieht werden ein paar Werte angezeigt aber die stimmen nicht. Aktuell habe ich 19,8° und 20,9° an den Thermostaten und Manuell läuft auf 14°
http://www.bilder-upload.eu/upload/d60647-1511387749.png (http://www.bilder-upload.eu/upload/d60647-1511387749.png)
Werden denn die Werte aktualisiert, wenn Du folgenden Befehl ausführst?
get HZ_Wohnzimmer update
Wenn ja, hast Du den RPC Server konfiguriert und gestartet? Der ist für die Aktualisierung der Werte zuständig. Du must das Attribut rpcinterfaces im IODevice zumindest auf BidCos-RF und VirtualDevices setzen.
RPC Server läuft und funktioniert weil über den Schieber glaube "Control" nennt sich der kann ich die Temp verstellen die dann von beiden Thermostaten sofort übernommen wird.
Wenn du mir sagst wo ich dies "Du must das Attribut rpcinterfaces im IODevice zumindest auf BidCos-RF und VirtualDevices setzen." kontrollieren kann schaue ich nach. Habe die letzten Tage soviel konfiguriert und bin mir nicht mehr sicher.
Bei
get HZ_Wohnzimmer update
erscheint ein Popup was ich mit OK bestätigen kann aber es ist kein Inhalt drin sprich ein kleines weisses leeres Popup mit OK.
Meine d_ccu config
defmod d_ccu HMCCU 192.168.0.56
attr d_ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
attr d_ccu ccudef-readingformat datapoint
attr d_ccu ccudef-readingname ^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?UNREACH$:activity
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 intrpc
attr d_ccu ccureadings 1
attr d_ccu cmdIcon on:general_an off:general_aus
attr d_ccu event-on-change-reading .*
attr d_ccu eventMap /rpcserver on:on/rpcserver off:off/
attr d_ccu room 30_HomeMatic
attr d_ccu rpcinterfaces BidCos-RF
attr d_ccu rpcinterval 5
attr d_ccu rpcport 2001
attr d_ccu rpcqueue /tmp/ccuqueue
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state
attr d_ccu stripnumber 1
Ich hänge mich mal hier dran. Wenn es nicht passt mach eich ein eigenes Thema auf.
Ich habe mir ein Raspberry PI 3 und das passende Homematic Funkmodul. Installiert ist das ganze auf dem letzen Image:2.29.23.20171118.
Ich nutze im Moment die : HM-CC-RT-DN
Nun habe ich die Verbindung zwischen der CCU und dem FHEM erstellt und dann die Thermostate definiert.
Ich sehe auch alle Thermostate im FHEM und alle Daten werden auch aktualisiert.
Versuche ich aber die Temperatur oder irgendwas zu ändern sehe ich im LogFile: HMCCUDEV: Heizkoerper_ZimmerDanny Invalid datapoint
Das ist die Definition der Anbindung an die CCU:
define rasp_ccu HMCCU 192.168.XXX.XX
attr rasp_ccu ccuflags intrpc
attr rasp_ccu room System
attr rasp_ccu rpcinterfaces BidCos-Wired,BidCos-RF,VirtualDevices,HmIP-RF,CUxD,Homegear
attr rasp_ccu rpcinterval 5
attr rasp_ccu rpcport 2000,2001,9292,2010,8701,2003
attr rasp_ccu rpcqueue /tmp/ccuqueue
attr rasp_ccu rpcserver on
attr rasp_ccu stateFormat rpcstate/state
Und das die Definition für das Thermostat:
define Heizkoerper_ZimmerDanny HMCCUDEV NEQXXXXXXX
attr Heizkoerper_ZimmerDanny IODev rasp_ccu
attr Heizkoerper_ZimmerDanny ccureadingfilter (TEMPERATURE|VALVE_STATE|CONTROL)
attr Heizkoerper_ZimmerDanny cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr Heizkoerper_ZimmerDanny controldatapoint 4.SET_TEMPERATURE
attr Heizkoerper_ZimmerDanny eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
attr Heizkoerper_ZimmerDanny genericDeviceType thermostat
attr Heizkoerper_ZimmerDanny hmstatevals FAULT_REPORTING!1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve_error_pos
attr Heizkoerper_ZimmerDanny room ZimmerDanny
attr Heizkoerper_ZimmerDanny statedatapoint 4.SET_TEMPERATURE
attr Heizkoerper_ZimmerDanny stripnumber 1
attr Heizkoerper_ZimmerDanny substexcl control
attr Heizkoerper_ZimmerDanny substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on;;FAULT_REPORTING!0:no,1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve:error_pos
attr Heizkoerper_ZimmerDanny webCmd control:Auto:Manu:Boost:on:off
attr Heizkoerper_ZimmerDanny widgetOverride control:slider,4.5,0.5,30.5,1
Jemand eine Idee daszu ??
Zitat von: floxx am 23 November 2017, 08:19:26
RPC Server läuft und funktioniert weil über den Schieber glaube "Control" nennt sich der kann ich die Temp verstellen die dann von beiden Thermostaten sofort übernommen wird.
Das sagt gar nichts. Einstellen von Zuständen und Aktualisierung der Werte in FHEM sind 2 verschiedene Dinge.
Zitat
Wenn du mir sagst wo ich dies "Du must das Attribut rpcinterfaces im IODevice zumindest auf BidCos-RF und VirtualDevices setzen." kontrollieren kann schaue ich nach. Habe die letzten Tage soviel konfiguriert und bin mir nicht mehr sicher.
Nach dem Listing der Config offensichtlich nicht:
rpcinterfaces BidCos-RF ==> rpcinterfaces BidCos-RF,VirtualDevices
Am besten über die Weboberfläche anhaken und danach den RPC Server neu starten!!
Zitat
Bei
get HZ_Wohnzimmer update
erscheint ein Popup was ich mit OK bestätigen kann aber es ist kein Inhalt drin sprich ein kleines weisses leeres Popup mit OK.
Das ist seltsam. Und wenn Du im FHEM Webinterface direkt den "update" Befehl auswählst? Eigentlich müssten dann die Readings der Gruppe aktualisiert werden.
Zitat von: popperchris am 23 November 2017, 09:54:03
IVersuche ich aber die Temperatur oder irgendwas zu ändern sehe ich im LogFile: HMCCUDEV: Heizkoerper_ZimmerDanny Invalid datapoint
Versuche mal: set Heizkoerper_ZimmerDanny datapoint 4.SET_TEMPERATURE 20
Kommt da die gleiche Fehlermeldung? Wenn ja:
get rasp_ccu devicelist
und dann nochmal den Befehl oben.
Zitat
attr rasp_ccu rpcinterfaces BidCos-Wired,BidCos-RF,VirtualDevices,HmIP-RF,CUxD,Homegear
Du solltest nur die Interfaces anhaken, für die es auch Geräte in der CCU gibt und die du auch in FHEM verwenden möchtest. Das ist sonst unnötiger Overhead auf dem Raspi, da für jedes Interface ein separater Prozess gestartet wird.
habe das rpcinterfaces BidCos-RF ==> rpcinterfaces BidCos-RF,VirtualDevices hinzugefügt und RPC neugestartet seitdem funktioniert das "D: desired-temp°" :)
Leider wird die aktuelle Temperatur immer ncoh mit 19.5 angegeben was aber nicht stimmt. Desweiteren habe ich als Test im Tablet ui diese Gruppe mal hinzugefügt und dort erhalte ich keine Daten und die Temperatur wird auch nicht verändert wenn ich den Schiebregler betätige.
Widget dafür habe ich von hier: https://wiki.fhem.de/wiki/FTUI_Widget_Thermostat (https://wiki.fhem.de/wiki/FTUI_Widget_Thermostat)
Ich denke es wäre am besten wenn ich den Thermostat bzw. die Gruppe in FHEM neu anlege aber könnt ihr mir bitte genau sagen mit welchen Befehlen? Ich hab da sicher einen/mehrere Fehler drin.
Anbei meine aktuelle RAW definition
defmod HZ_Wohnzimmer HMCCUDEV WZ_Heizung group=WZ_Fenster,WZ_Terrasse
attr HZ_Wohnzimmer IODev d_ccu
attr HZ_Wohnzimmer ccucalculate dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY
attr HZ_Wohnzimmer ccureadingfilter (^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|^VALVE|^CONTROL|^WINDOW_OPEN)
attr HZ_Wohnzimmer ccureadingformat datapoint
attr HZ_Wohnzimmer ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;;1.SET_TEMPERATURE$:desired-temp;;1.ACTUAL_HUMIDITY$:humidity
attr HZ_Wohnzimmer cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HZ_Wohnzimmer controldatapoint 1.SET_TEMPERATURE
attr HZ_Wohnzimmer event-on-change-reading .*
attr HZ_Wohnzimmer eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr HZ_Wohnzimmer hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
attr HZ_Wohnzimmer room 30_HomeMatic
attr HZ_Wohnzimmer stateFormat T: temperature° D: desired-temp° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE
attr HZ_Wohnzimmer statedatapoint 1.SET_TEMPERATURE
attr HZ_Wohnzimmer stripnumber 1
attr HZ_Wohnzimmer substexcl control
attr HZ_Wohnzimmer substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
attr HZ_Wohnzimmer webCmd control:Auto:Manu:Boost:on:off
attr HZ_Wohnzimmer widgetOverride control:slider,3.5,0.5,30.5,1
Versuche mal: set Heizkoerper_ZimmerDanny datapoint 4.SET_TEMPERATURE 20
Habe die Befehle probiert und dann gehen die Grafiken kurz weg und die Meldung erscheint im LogFile:
Gebe ich : get rasp_ccu devicelist geht ein Popup auf wo er sagt was von 4 Devices und 72 Cannels
Gebe ich wieder den set Befehle ein erscheint wieder die Fehlermeldung im LogFile und die Temperatur ändert sich nicht
@floxx: WZ_Fenster und WZ_Terrasse, was sind das für Geräte? Heizkörperthermostate vom Typ HM-CC-RT-DN?
@popperchris: mach mal ein list rasp_ccu
Zitat von: zap am 23 November 2017, 19:22:43
@floxx: WZ_Fenster und WZ_Terrasse, was sind das für Geräte? Heizkörperthermostate vom Typ HM-CC-RT-DN?
ja genau die Gruppe heisst "WZ_Heizung" in der CC2 und in Fhem "HZ_Wohnzimmer" und in der Gruppe auf der ccu2 sind die beiden HM-CC-RT-DN mit den Namen Z_Fenster und WZ_Terrasse.
Wenn ich den Schieberegler in Fhem betätige ändert er auch bei beiden die Temperatur wie gewünscht.
Morgen. Habe ich gemacht. Das ist einiges was da gelistet wird:
Internals:
CCUNum 1
Clients :HMCCUDEV:HMCCUCHN:HMCCURPC:
DEF 192.168.178.70
NAME rasp_ccu
NR 495
NTFY_ORDER 50-rasp_ccu
RPCPID 23158
RPCPRC internal
RPCState running
STATE running/OK
TYPE HMCCU
ccuaddr BidCoS-RF
ccuchannels 72
ccudevices 4
ccuif BidCos-RF
ccuinterfaces BidCos-RF
ccuname HM-RCV-50 BidCoS-RF
ccustate active
ccutype CCU2
host 192.168.178.70
version 4.1.004
READINGS:
2017-11-24 06:42:07 rpcstate running
2017-11-24 06:42:07 state OK
hmccu:
evtime 1511502281
evtimeout 0
localaddr 192.168.178.20
rpccount 1
rpcinit 1
rpcports 2000,2001,9292,2010,8701,2003
updatetime 0
adr:
Badezimmer:
address MEQ0562624
addtype dev
valid 1
Badezimmer:0:
address MEQ0562624:0
addtype chn
valid 1
BadezimmerThermostst:
address MEQ0562624:4
addtype chn
valid 1
GaesteWC:
address LEQ0902056
addtype dev
valid 1
GaesteWC:0:
address LEQ0902056:0
addtype chn
valid 1
GarsteWCThermostat:
address LEQ0902056:4
addtype chn
valid 1
HM-CC-RT-DN LEQ0902056:1:
address LEQ0902056:1
addtype chn
valid 1
HM-CC-RT-DN LEQ0902056:2:
address LEQ0902056:2
addtype chn
valid 1
HM-CC-RT-DN LEQ0902056:3:
address LEQ0902056:3
addtype chn
valid 1
HM-CC-RT-DN LEQ0902056:5:
address LEQ0902056:5
addtype chn
valid 1
HM-CC-RT-DN LEQ0902056:6:
address LEQ0902056:6
addtype chn
valid 1
HM-CC-RT-DN MEQ0562624:1:
address MEQ0562624:1
addtype chn
valid 1
HM-CC-RT-DN MEQ0562624:2:
address MEQ0562624:2
addtype chn
valid 1
HM-CC-RT-DN MEQ0562624:3:
address MEQ0562624:3
addtype chn
valid 1
HM-CC-RT-DN MEQ0562624:5:
address MEQ0562624:5
addtype chn
valid 1
HM-CC-RT-DN MEQ0562624:6:
address MEQ0562624:6
addtype chn
valid 1
HM-CC-RT-DN NEQ1408784:1:
address NEQ1408784:1
addtype chn
valid 1
HM-CC-RT-DN NEQ1408784:2:
address NEQ1408784:2
addtype chn
valid 1
HM-CC-RT-DN NEQ1408784:3:
address NEQ1408784:3
addtype chn
valid 1
HM-CC-RT-DN NEQ1408784:5:
address NEQ1408784:5
addtype chn
valid 1
HM-CC-RT-DN NEQ1408784:6:
address NEQ1408784:6
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:
address BidCoS-RF
addtype dev
valid 1
HM-RCV-50 BidCoS-RF:0:
address BidCoS-RF:0
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:1:
address BidCoS-RF:1
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:10:
address BidCoS-RF:10
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:11:
address BidCoS-RF:11
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:12:
address BidCoS-RF:12
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:13:
address BidCoS-RF:13
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:14:
address BidCoS-RF:14
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:15:
address BidCoS-RF:15
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:16:
address BidCoS-RF:16
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:17:
address BidCoS-RF:17
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:18:
address BidCoS-RF:18
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:19:
address BidCoS-RF:19
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:2:
address BidCoS-RF:2
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:20:
address BidCoS-RF:20
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:21:
address BidCoS-RF:21
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:22:
address BidCoS-RF:22
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:23:
address BidCoS-RF:23
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:24:
address BidCoS-RF:24
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:25:
address BidCoS-RF:25
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:26:
address BidCoS-RF:26
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:27:
address BidCoS-RF:27
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:28:
address BidCoS-RF:28
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:29:
address BidCoS-RF:29
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:3:
address BidCoS-RF:3
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:30:
address BidCoS-RF:30
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:31:
address BidCoS-RF:31
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:32:
address BidCoS-RF:32
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:33:
address BidCoS-RF:33
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:34:
address BidCoS-RF:34
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:35:
address BidCoS-RF:35
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:36:
address BidCoS-RF:36
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:37:
address BidCoS-RF:37
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:38:
address BidCoS-RF:38
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:39:
address BidCoS-RF:39
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:4:
address BidCoS-RF:4
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:40:
address BidCoS-RF:40
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:41:
address BidCoS-RF:41
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:42:
address BidCoS-RF:42
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:43:
address BidCoS-RF:43
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:44:
address BidCoS-RF:44
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:45:
address BidCoS-RF:45
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:46:
address BidCoS-RF:46
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:47:
address BidCoS-RF:47
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:48:
address BidCoS-RF:48
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:49:
address BidCoS-RF:49
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:5:
address BidCoS-RF:5
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:50:
address BidCoS-RF:50
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:6:
address BidCoS-RF:6
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:7:
address BidCoS-RF:7
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:8:
address BidCoS-RF:8
addtype chn
valid 1
HM-RCV-50 BidCoS-RF:9:
address BidCoS-RF:9
addtype chn
valid 1
ZimmerDanny:
address NEQ1408784
addtype dev
valid 1
ZimmerDanny:0:
address NEQ1408784:0
addtype chn
valid 1
ZimmerDannyThermostat:
address NEQ1408784:4
addtype chn
valid 1
agg:
dev:
BidCoS-RF:
addtype dev
channels 51
chndir 0
firmware 2.29.23.20171118
interface BidCos-RF
name HM-RCV-50 BidCoS-RF
rxmode 1
type HM-RCV-50
valid 1
version 6
BidCoS-RF:0:
addtype chn
channels 1
chndir 0
name HM-RCV-50 BidCoS-RF:0
usetype MAINTENANCE
valid 1
version 6
BidCoS-RF:1:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:1
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:10:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:10
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:11:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:11
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:12:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:12
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:13:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:13
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:14:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:14
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:15:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:15
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:16:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:16
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:17:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:17
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:18:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:18
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:19:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:19
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:2:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:2
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:20:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:20
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:21:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:21
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:22:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:22
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:23:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:23
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:24:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:24
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:25:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:25
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:26:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:26
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:27:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:27
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:28:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:28
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:29:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:29
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:3:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:3
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:30:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:30
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:31:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:31
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:32:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:32
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:33:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:33
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:34:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:34
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:35:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:35
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:36:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:36
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:37:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:37
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:38:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:38
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:39:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:39
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:4:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:4
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:40:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:40
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:41:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:41
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:42:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:42
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:43:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:43
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:44:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:44
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:45:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:45
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:46:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:46
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:47:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:47
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:48:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:48
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:49:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:49
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:5:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:5
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:50:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:50
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:6:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:6
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:7:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:7
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:8:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:8
usetype VIRTUAL_KEY
valid 1
version 6
BidCoS-RF:9:
addtype chn
channels 1
chndir 1
name HM-RCV-50 BidCoS-RF:9
usetype VIRTUAL_KEY
valid 1
version 6
LEQ0902056:
addtype dev
channels 7
chndir 0
firmware 1.3
interface BidCos-RF
name GaesteWC
rxmode 14
type HM-CC-RT-DN
valid 1
version 29
LEQ0902056:0:
addtype chn
channels 1
chndir 0
name GaesteWC:0
usetype MAINTENANCE
valid 1
version 29
LEQ0902056:1:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN LEQ0902056:1
usetype WEATHER_RECEIVER
valid 1
version 29
LEQ0902056:2:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN LEQ0902056:2
usetype CLIMATECONTROL_RECEIVER
valid 1
version 29
LEQ0902056:3:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN LEQ0902056:3
usetype WINDOW_SWITCH_RECEIVER
valid 1
version 29
LEQ0902056:4:
addtype chn
channels 1
chndir 1
name GarsteWCThermostat
usetype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
version 29
LEQ0902056:5:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN LEQ0902056:5
usetype CLIMATECONTROL_RT_RECEIVER
valid 1
version 29
LEQ0902056:6:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN LEQ0902056:6
usetype REMOTECONTROL_RECEIVER
valid 1
version 29
MEQ0562624:
addtype dev
channels 7
chndir 0
firmware 1.4
interface BidCos-RF
name Badezimmer
rxmode 14
type HM-CC-RT-DN
valid 1
version 29
MEQ0562624:0:
addtype chn
channels 1
chndir 0
name Badezimmer:0
usetype MAINTENANCE
valid 1
version 29
MEQ0562624:1:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN MEQ0562624:1
usetype WEATHER_RECEIVER
valid 1
version 29
MEQ0562624:2:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN MEQ0562624:2
usetype CLIMATECONTROL_RECEIVER
valid 1
version 29
MEQ0562624:3:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN MEQ0562624:3
usetype WINDOW_SWITCH_RECEIVER
valid 1
version 29
MEQ0562624:4:
addtype chn
channels 1
chndir 1
name BadezimmerThermostst
usetype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
version 29
MEQ0562624:5:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN MEQ0562624:5
usetype CLIMATECONTROL_RT_RECEIVER
valid 1
version 29
MEQ0562624:6:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN MEQ0562624:6
usetype REMOTECONTROL_RECEIVER
valid 1
version 29
NEQ1408784:
addtype dev
channels 7
chndir 0
firmware 1.4
interface BidCos-RF
name ZimmerDanny
rxmode 14
type HM-CC-RT-DN
valid 1
version 29
NEQ1408784:0:
addtype chn
channels 1
chndir 0
name ZimmerDanny:0
usetype MAINTENANCE
valid 1
version 29
NEQ1408784:1:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN NEQ1408784:1
usetype WEATHER_RECEIVER
valid 1
version 29
NEQ1408784:2:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN NEQ1408784:2
usetype CLIMATECONTROL_RECEIVER
valid 1
version 29
NEQ1408784:3:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN NEQ1408784:3
usetype WINDOW_SWITCH_RECEIVER
valid 1
version 29
NEQ1408784:4:
addtype chn
channels 1
chndir 1
name ZimmerDannyThermostat
usetype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
version 29
NEQ1408784:5:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN NEQ1408784:5
usetype CLIMATECONTROL_RT_RECEIVER
valid 1
version 29
NEQ1408784:6:
addtype chn
channels 1
chndir 2
name HM-CC-RT-DN NEQ1408784:6
usetype REMOTECONTROL_RECEIVER
valid 1
version 29
dp:
HM-CC-RT-DN:
ch:
4:
HM-RCV-50:
ch:
0:
INSTALL_MODE:
oper 3
type 2
1:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
10:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
11:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
12:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
13:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
14:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
15:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
16:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
17:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
PRESS_SHORT:
oper 6
type 2
18:
LEVEL:
oper 2
type 6
PRESS_LONG:
oper 6
type 2
 
Das ist zwar viel, aber trotzdem fehlt einiges. Wurde beim Posten hier etwas abgeschnitten? Kannst du deinen Beitrag bitte abändern und die list Ausgabe in Code Tags packen? Dazu einfach im Forum Editor den # Button drücken. Dann wird es lesbarer.
Ich füge es als Datei an.
Habe heute Morgen einen Schaltaktor : HM-LC-Sw1-Pl-2 aud FHEM gelöscht dann an die CCU angelernt und dann im FHEM wie in dem Beispiel angelegt.
Der funktioniert ohne Probleme.
@zap
könntest du mir bitte auch helfen? würde gerne meinen Fehler oder fehlende attr wissen und beheben, Danke
Zitat von: popperchris am 24 November 2017, 08:50:08
Ich füge es als Datei an.
Habe heute Morgen einen Schaltaktor : HM-LC-Sw1-Pl-2 aud FHEM gelöscht dann an die CCU angelernt und dann im FHEM wie in dem Beispiel angelegt.
Der funktioniert ohne Probleme.
Dein Problem ist folgendes:
dp:
HM-CC-RT-DN:
ch:
4:
HM-LC-Sw1-Pl-2:
ch:
0:
AES_KEY:
oper 1
type 8
CONFIG_PENDING:
oper 5
type 2
DUTYCYCLE:
oper 5
type 2
Wie Du siehst, kennt HMCCU für das Thermostat keinerlei Datenpunkte. Als Vergleich habe ich einige Datenpunkte eines Schalters HM-LC-Sw1-Pl-2 mal stehen lassen.
Frage: Gibt es den Namen des Thermostaten Heizkoerper_ZimmerDanny in der CCU nochmal (als Raum oder Kanal oder sonst was)? Namen müssen immer eindeutig sein.
Welche Namen haben denn der Thermostat sowie seine Kanäle in der CCU? Ich sehe da im Listing ein "ZimmerDanny". Gibt es das auch als Raum?
@floxx: Immer mit der Ruhe. Kann mich nicht erinnern, dass wir einen Supportvertrag haben ;-)
Es gibt in der CCU ein Raum ZimmerDanny und der Name ist ZimmerDanny.
Im FHEM gibt es dann als Raum Zimmer Danny und da ein HeizKoerper_Danny.
Gruß Christoph
Zitat von: popperchris am 25 November 2017, 18:14:47
Es gibt in der CCU ein Raum ZimmerDanny und der Name ist ZimmerDanny.
Im FHEM gibt es dann als Raum Zimmer Danny und da ein HeizKoerper_Danny.
Gruß Christoph
Raum und Thermstat dürfen in der CCU nicht den gleichen Namen haben! Überhaupt sollte nichts in der CCU den gleichen Namen haben, da alles Objekte sind, ob jetzt Raum, Gerät, Kanal, Gewerk, ...
Also umbenennen, nochmal get devicelist ausführen und am besten das Thermostat in FHEM neu definieren.
Kaum macht man es richtig funktioniert es auch.
Habe alle Devices umbenannt und nochmal ein "get devicelist " gemacht und jetzt geht es auch.
Vielen Dank für eure Hilfe.
Gruß
Christoph
Zitat von: floxx am 23 November 2017, 21:54:07
ja genau die Gruppe heisst "WZ_Heizung" in der CC2 und in Fhem "HZ_Wohnzimmer" und in der Gruppe auf der ccu2 sind die beiden HM-CC-RT-DN mit den Namen Z_Fenster und WZ_Terrasse.
Wenn ich den Schieberegler in Fhem betätige ändert er auch bei beiden die Temperatur wie gewünscht.
Was wird bei folgendem Befehl angezeigt
get WZ_Heizung deviceinfo
Oh, ergänze doch mal ccureadingfilter um ^ACTUAL
Hallo zusammen,
ich weiß zwar nicht, ob dies der richtige Ort für die Frage ist, aber ich hoffe, ihr könnt mir helfen.
So ganz steige ich nicht durch, wie ich bestimmen kann, welche readings erzeugt werden. Ich habe 2 identische Fenstersensoren HM-Sec-SCo.
Bei dem einen habe ich sehr viele readings, bei dem anderen nur 3, obwohl die Attribute identisch sind.(siehe Anhänge)
Was ich aber eigentlich haben möchte, ist eine Kombination aus beidem. Mir reichen die 3 Attribute plus dem Batteriezustand.
Wie kann ich denn das hinbekommen? Über einen Tipp wäre ich sehr dankbar...
Viele Grüße
Markus
Hallo,
ich bin gerade dabei meine Thermostate in FHEM zu integrieren aber es ist komisch. Ich habe die Parameter desired-temp ect nicht, ich muss die Werte mittels "set WZ_Heizung_INT0000001 control 17" regeln/ansteuern. Habe schon paar mal alles gelöscht und neu erstellt aber die Parameter fehlen trotzdem und im Netz habe ich nichts gefunden.
- Ich habe zwei HM-CC-RT-DN in einer Gruppe und diese heisst "WZ_Heizung_INT0000001"
- Die ccu2 läuft auf eine raspberry3 mit yahm und dem HM-Modul was auch alles funktioniert
d_ccu rpcserver läuft und funktioniert auch würde ich sagen da ich mittels den obrigen Befehle die Thermostate schalten kann.
defmod d_ccu HMCCU 192.168.0.56
attr d_ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
attr d_ccu ccudef-readingformat datapoint
attr d_ccu ccudef-readingname ^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?UNREACH$:activity
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 intrpc
attr d_ccu ccureadings 1
attr d_ccu cmdIcon on:general_an off:general_aus
attr d_ccu event-on-change-reading .*
attr d_ccu eventMap /rpcserver on:on/rpcserver off:off/
attr d_ccu icon hm_ccu
attr d_ccu room 30_HomeMatic
attr d_ccu rpcinterfaces BidCos-RF,VirtualDevices
attr d_ccu rpcinterval 5
attr d_ccu rpcport 2001,9292
attr d_ccu rpcqueue /tmp/ccuqueue
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state
attr d_ccu stripnumber 1
WZ_Heizung_INT0000001
defmod WZ_Heizung_INT0000001 HMCCUDEV WZ_Heizung group=WZ_Fenster,WZ_Terrasse
attr WZ_Heizung_INT0000001 userattr WZ_Heizung WZ_Heizung_map structexclude
attr WZ_Heizung_INT0000001 IODev d_ccu
attr WZ_Heizung_INT0000001 ccureadingfilter (^ACTUAL_TEMPERATURE|^SET_TEMPERATURE|^TEMPERATURE|^VALVE|^CONTROL|^WINDOW_OPEN)
attr WZ_Heizung_INT0000001 cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr WZ_Heizung_INT0000001 controldatapoint 1.SET_TEMPERATURE
attr WZ_Heizung_INT0000001 eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr WZ_Heizung_INT0000001 icon heizung.0
attr WZ_Heizung_INT0000001 room 30_HomeMatic
attr WZ_Heizung_INT0000001 statedatapoint 1.ACTUAL_TEMPERATURE
attr WZ_Heizung_INT0000001 stripnumber 1
attr WZ_Heizung_INT0000001 substexcl control
attr WZ_Heizung_INT0000001 substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
attr WZ_Heizung_INT0000001 webCmd control:Auto:Manu:Boost:on:off
attr WZ_Heizung_INT0000001 widgetOverride control:slider,3.5,0.5,30.5,1
Ich hoffe ihr findet meinen Fehler :(
Kein Fehler. Den Befehl "set desired-temp" gibt es nicht. HMCCU ist nicht wie CUL_HM, wo es Geräte spezifische Befehle gibt. HMCCU verfolgt einen standardisierten Ansatz.
Wenn Du diesen Befehl haben möchtest, definierte ihn einfach per eventMap, z.B.
attr eventMap /datapoint 1.SET_TEMPERATURE:desired-temp/
Dann noch ein Widget definieren:
attr widgetOverride desired-temp:slider,4.5,0.5,30.5,1
Alle Attribute inkl. controldatapoint sind nur Hilfen. Im Prinzip läuft alles immer auf ein "set datapoint" hinaus.
danke für deine Antwort das erklärt dann alles und ich lasse es wie es ist. Hast du noch andere Tipps für meine Konfiguration bezüglich den Werten um es evtl komfortabler zu machen?
Zitat von: DerTom am 05 Dezember 2016, 07:38:43
Moin,
hat schon mel einer einen HM-OU-CFM-TW angebunden und kann ein Beispiel geben?
Gruß
Hallo in die Runde,
gibt es jemanden, der den o.g. Mp3 Funk-Gong mit SUBMIT ansteuern konnte? - Ich habe noch nichts gefunden, was bei mir funktioniert.
Lieben Dank schon mal :-)
LG Taasba
Auf dem DEV oder CHN2 jeweils keine Reaktion, bzw. folgende Einträge im Logfile (verbose 3).
set HM_FL.Klingel_Mp3 datapoint 2.SUBMIT "0.2,1,5,1"
Zitat2018.01.01 20:51:13 1: HMCCUCHN: HM_FL.Klingel_Mp3 Execution of CCU script or command failed
oder
set HM_FL.Klingel_0 datapoint 2.SUBMIT "0.2,1,5,1"
ZitatHMCCUCHN: HM_FL.Klingel_0 Execution of CCU script or command failed
oder
set HM_FL.Klingel datapoint 2.SUBMIT "0.2,1,5,1"
Zitatkein Eintrag im Log - [verbose 3]
Ich habe das Gerät als DEV und die CHN eingebunden:
DEV:
defmod HM_FL.Klingel HMCCUDEV NEQxxxxx
attr HM_FL.Klingel IODev myCCU
attr HM_FL.Klingel ccureadingfilter STATE
attr HM_FL.Klingel eventMap /datapoint 1.STATE 1:led-on/datapoint 1.STATE 0:led-off/datapoint 2.STATE 1:sound-on/datapoint 2.STATE 0:sound-off
attr HM_FL.Klingel room Alarm
attr HM_FL.Klingel statedatapoint 1.STATE
attr HM_FL.Klingel statevals on:true,off:false
attr HM_FL.Klingel substitute STATE!(0|false):ledOff,(1|true):ledOn;;2.STATE!(0|false):soundOff,(1|true):soundOn
attr HM_FL.Klingel verbose 5
setstate HM_FL.Klingel ledOff
setstate HM_FL.Klingel 2018-01-01 20:29:34 1.STATE ledOff
setstate HM_FL.Klingel 2018-01-01 20:39:56 2.STATE ledOff
setstate HM_FL.Klingel 2018-01-01 17:17:07 R-LOCAL_RESET_DISABLE 0
setstate HM_FL.Klingel 2018-01-01 20:39:56 hmstate ledOff
setstate HM_FL.Klingel 2018-01-01 20:29:34 state ledOff
CHN0
defmod HM_FL.Klingel_0 HMCCUCHN NEQxxxxxxx:0
attr HM_FL.Klingel_0 IODev myCCU
attr HM_FL.Klingel_0 room Alarm
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.AES_KEY on
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.CONFIG_PENDING false
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.DEVICE_IN_BOOTLOADER false
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.DUTYCYCLE false
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.RSSI_DEVICE 1
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.RSSI_PEER 185
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.STICKY_UNREACH true
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 0.UPDATE_PENDING false
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 activity alive
setstate HM_FL.Klingel_0 2018-01-01 16:46:46 battery ok
setstate HM_FL.Klingel_0 2018-01-01 20:39:56 hmstate Initialized
setstate HM_FL.Klingel_0 2018-01-01 16:30:36 state Initialized
CHN1 Led:
defmod HM_FL.Klingel_Led HMCCUCHN NEQxxxxx:1
attr HM_FL.Klingel_Led IODev myCCU
attr HM_FL.Klingel_Led room Alarm
setstate HM_FL.Klingel_Led 0
setstate HM_FL.Klingel_Led 2018-01-01 20:28:48 1.INHIBIT unlocked
setstate HM_FL.Klingel_Led 2018-01-01 20:29:34 1.STATE 0
setstate HM_FL.Klingel_Led 2018-01-01 20:29:34 1.WORKING false
setstate HM_FL.Klingel_Led 2018-01-01 20:39:56 hmstate 0
setstate HM_FL.Klingel_Led 2018-01-01 20:29:34 state 0
CHN2 Mp3:
defmod HM_FL.Klingel_Mp3 HMCCUCHN NEQ0xxxxx:2
attr HM_FL.Klingel_Mp3 IODev myCCU
attr HM_FL.Klingel_Mp3 room Alarm
setstate HM_FL.Klingel_Mp3 0
setstate HM_FL.Klingel_Mp3 2018-01-01 20:21:33 2.INHIBIT unlocked
setstate HM_FL.Klingel_Mp3 2018-01-01 20:39:56 2.STATE 0
setstate HM_FL.Klingel_Mp3 2018-01-01 20:39:56 2.WORKING false
setstate HM_FL.Klingel_Mp3 2018-01-01 20:39:56 hmstate 0
setstate HM_FL.Klingel_Mp3 2018-01-01 20:39:56 state 0
Warum hast Du die Kanäle nochmal einzeln als Devices definiert?
Bei einem HMCCUDEV Device musst du bei set datapoint die Kanalnummer mit angeben (also 2.SUBMIT). Bei einem HMCCUCHN Device nicht (SUBMIT).
Also: set HM_FL.Klingel datapoint 2.SUBMIT xxx
Oder: set HM_FL.Klingel_Mp3 datapoint SUBMIT xxx
Außerdem hat wohl HMCCUDEV/HMCUCCHN ein Problem mit dem String. Versuche mal eine der beiden folgenden Varianten:
set HM_FL.Klingel datapoint 2.SUBMIT "'0.2,1,5,1'"
set HM_FL.Klingel datapoint 2.SUBMIT '"0.2,1,5,1"'
Bei der ersten ist es ein " gefolgt von einem ' und am Ende umgekehrt.
Bei der zweiten ist es ein ' gefolgt von einem " und am Ende umgekehrt.
Hallo zusammen,
ich versuche nun seit über einer Woche meinen HM-LC-Dim1T-Pl-3 ordentlich in fhem einzubinden.
Das Autocreate funktioniert leider nicht.
Ich habe eine CCU2 (RaspberryMatic2.29.23.20171216) einwandfrei am laufen und fhem 5.8.
Ich habe den Dimmer zwar mit den ganzen Codeschnipseln hier von Seite 1 ans laufen bekommen, allerdings ist der Dimmer über andFhem nicht steuerbar:
# Dimmer
define Dimmer_HM HMCCUDEV MExxxxx
attr Dimmer_HM ccureadingfilter (LEVEL|ON_TIME)
attr Dimmer_HM ccureadings 1
attr Dimmer_HM ccuverify 2
attr Dimmer_HM controldatapoint 1.LEVEL
attr Dimmer_HM devStateIcon Initialized:10px-kreis-gelb 0:FS20.off 1:FS20.on .*:dim43%:off
attr Dimmer_HM event-on-change-reading .*
attr Dimmer_HM stateFormat { sprintf("%d", ReadingsVal($name,"S-Dimmer.LEVEL",0)*100) }
attr Dimmer_HM statechannel 1
attr Dimmer_HM statedatapoint LEVEL
attr Dimmer_HM statevals on:1.0,off:0.0,0:0.0,100:1.0
attr Dimmer_HM webCmd control
attr Dimmer_HM widgetOverride control:knob,min:0,max:1,step:0.01,skin:tron,thickness:.4,width:80,height:80,angleArc:180,angleOffset:-90,lineCap:round,fgColor:4175FF,bgColor:E3E3E3
Jetzt bin ich nochmal neu angefangen und suche mir aus dem ganzen Netz Infos zusammen.....
Leider finde ich nicht viel, weder im WIKI noch per Suche im Forum, noch im www
Jetzt habe ich das:
define Dimmer_HM HMCCUDEV MExxxxx 1
attr Dimmer_HM IODev d_ccu
attr Dimmer_HM statechannel 1
wenn ich diese attr, die ich in mehren Beispielen gefunden habe eingebe wirft fhem immer einen Fehler aus:
attr Dimmer_HM autoReadReg 4_reqStatus
attr Dimmer_HM expert 2_raw
attr Dimmer_HM firmware 2.9
attr Dimmer_HM model HM-LC-Dim1L-Pl-3
attr Dimmer_HM subType dimmer
attr Dimmer_HM webCmd getConfig:clear msgEvents
Ich habe nun absolut keinen Plan mehr. :o Kann mir jemand weiterhelfen?
Danke im Voraus!!
Ich bezweifel sehr stark das Du diese Attribute über FHEMWEB hinzufügen kannst. Die sind alle für das normale Homematic Modul.
Sowas in der Rcihtung habe ich mir auch schon gedacht. Die findet man alle in Verbindung mit dem Dimmer in den fhem.cfg
Ich will ja nur den Dimmer korrekt einbinden. Wie gesagt, leider finde ich absolut nichts dazu, dass ich ihn so eingebunden bekomme, wie es vielleicht sein sollte...
so weit bin ich nun:
define Dimmer_HM HMCCUDEV MExxxxx 1
attr Dimmer_HM IODev d_ccu
attr Dimmer_HM ccureadingfilter (^LEVEL$|DIRECTION)
attr Dimmer_HM devStateIcon Initialized:10px-kreis-gelb 0:FS20.off 1:FS20.on .*:dim43%:off
attr Dimmer_HM event-on-change-reading .*
attr Dimmer_HM statechannel 1
attr Dimmer_HM statedatapoint 1.LEVEL
attr Dimmer_HM statevals on:100,off:0
attr Dimmer_HM webCmd on:off:pct
attr Dimmer_HM widgetOverride control:slider,0,10,100
Nur passiert nichts, wenn ich den Slider schiebe.
Wenn ich auf on oder off drücke kommt das:
HMCCUDEV: Dimmer_HM Execution of CCU script or command failed
Für den HM-LC-Dim1T-Pl-3 sind aber defaults hinterlegt, die vermutlich auch funktionieren werden.
Hast du in der Weboberfläche mal set defaults für das device ausgeführt?
https://wiki.fhem.de/wiki/HMCCU_Best_Practice#Neue_Ger.C3.A4te_anlernen (https://wiki.fhem.de/wiki/HMCCU_Best_Practice#Neue_Ger.C3.A4te_anlernen)
Hallo ZAP,
vielen Dank für den Hinweis, ich hatte heute erst einmal wieder über HMLAN angemeldet, werde es am Wochenende probieren. Werde berichten...
Zitat von: kjmEjfu am 02 Januar 2018, 20:19:29
Für den HM-LC-Dim1T-Pl-3 sind aber defaults hinterlegt, die vermutlich auch funktionieren werden.
Hast du in der Weboberfläche mal set defaults für das device ausgeführt?
https://wiki.fhem.de/wiki/HMCCU_Best_Practice#Neue_Ger.C3.A4te_anlernen (https://wiki.fhem.de/wiki/HMCCU_Best_Practice#Neue_Ger.C3.A4te_anlernen)
Hallo kjmEjfu,
Ja, die Sachen sind hinterlegt. Die Anleitung hatte ich schon gefunden, aber sie hatte beim ersten Versuch nicht funktioniert.
Habe es nun noch einmal alles nach Anleitung gemacht.
Das von dir beschriebene set defaults bringt mir den Slider usw. allerdings gibt es nur eine Fehlermeldung wenn ich versuche was zu schalten:
"HMCCUDEV: Dimmer_HM Execution of CCU script or command failed"
Zusätzlich ist nach einem Neustart das Device verschwunden in der Weboberfläche (In der cfg ist es noch da) und der RPCServer läuft nicht mehr:
ein set rpc on bringt die Fehlermeldung: HMCCU: d_ccu Start of RPC server failed
In der cfg sieht es so aus:
define d_ccu HMCCU 192.168.1.104
attr d_ccu ccuflags intrpc
attr d_ccu rpcinterfaces BidCos-RF
attr d_ccu rpcinterval 2
attr d_ccu rpcport 2001
attr d_ccu rpcqueue /tmp/ccuqueue
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state
define Dimmer_HM HMCCUDEV MExxxxx
attr Dimmer_HM IODev d_ccu
attr Dimmer_HM ccureadingfilter (^LEVEL$|DIRECTION)
attr Dimmer_HM ccuscaleval LEVEL:0:1:0:100
attr Dimmer_HM cmdIcon on:general_an off:general_aus
attr Dimmer_HM controldatapoint 1.LEVEL
attr Dimmer_HM hmstatevals ERROR_REDUCED!1:error_reduced;;ERROR_OVERHEAT!1:error_overheat;;ERROR_OVERLOAD!1:error_overload
attr Dimmer_HM statedatapoint 1.LEVEL
attr Dimmer_HM statevals on:100,off:0
attr Dimmer_HM stripnumber 1
attr Dimmer_HM substexcl control
attr Dimmer_HM substitute ERROR_OVERHEAT,ERROR_OVERLOAD,ERROR_REDUCED!(0|false):no,(1|true):yes;;LEVEL!#0-0:off,#1-100:on;;DIRECTION!0:none,1:up,2:down,3:undefined
attr Dimmer_HM webCmd control:on:off
attr Dimmer_HM widgetOverride control:slider,0,10,100
edit:
Nehme ich wieder die config von oben, läuft der rpcserver wieder.
edit 2: on und off schalten nun komischerweise. Aber ein Slider ist nicht da.
edit 3:
Hab jetzt noch einmal set dafaults gemacht. Jetzt ist der slider da und funktioniert auch.
define Dimmer_HM HMCCUDEV MExxxxx 1
attr Dimmer_HM IODev d_ccu
attr Dimmer_HM ccureadingfilter (^LEVEL$|DIRECTION)
attr Dimmer_HM ccuscaleval LEVEL:0:1:0:100
attr Dimmer_HM cmdIcon on:general_an off:general_aus
attr Dimmer_HM controldatapoint 1.LEVEL
attr Dimmer_HM devStateIcon Initialized:10px-kreis-gelb 0:FS20.off 1:FS20.on .*:dim43%:off
attr Dimmer_HM event-on-change-reading .*
attr Dimmer_HM hmstatevals ERROR_REDUCED!1:error_reduced;;ERROR_OVERHEAT!1:error_overheat;;ERROR_OVERLOAD!1:error_overload
attr Dimmer_HM statechannel 1
attr Dimmer_HM statedatapoint 1.LEVEL
attr Dimmer_HM statevals on:100,off:0
attr Dimmer_HM stripnumber 1
attr Dimmer_HM substexcl control
attr Dimmer_HM substitute ERROR_OVERHEAT,ERROR_OVERLOAD,ERROR_REDUCED!(0|false):no,(1|true):yes;;LEVEL!#0-0:off,#1-100:on;;DIRECTION!0:none,1:up,2:down,3:undefined
attr Dimmer_HM webCmd control:on:off
attr Dimmer_HM widgetOverride control:slider,0,10,100
jetzt steht hinter "define...<ID>" noch eine 1
Aber in der App "andFhem" ist immernoch kein slider und der Status ist immer "an"
Zudem hielt es nicht lange, nach einem Neustart war wieder alles weg und der rpc lief nicht mehr...
Zitat von: Meins am 02 Januar 2018, 21:23:06
jetzt steht hinter "define...<ID>" noch eine 1
Das ist der State-Channel. Die 1 kannst Du weglassen. Genauso das Attribut statechannel. Das wurde durch statedatapoint ersetzt.
Zitat
Aber in der App "andFhem" ist immernoch kein slider und der Status ist immer "an"
Ich kenne die App leider nicht. Da kann ich Dir also nicht helfen.
Zitat
Zudem hielt es nicht lange, nach einem Neustart war wieder alles weg und der rpc lief nicht mehr...
Wenn nach einem Neustart alles weg ist, Du jedoch vorher korrekt gespeichert hattest, liegt es daran, dass die Devices nicht definiert werden konnten. Das wiederum hat im Allgemeinen die Ursache, dass das IO Device (Modul HMCCU) nicht definiert werden konnte.
Die Devices sind auch nicht wirklich weg, solange du nicht nochmal speicherst sondern stehen nach wie vor in der fhem.cfg.
Schau doch mal ins Logfile. Da müssten eigentlich Meldungen stehen, die für die Fehlersuche hilfreich sind.
Hallo,
brauche kleine Hilfe!
Ich versuche gerade aus der CCU Systemvariablen die ich ein Kanal angehängt habe, in Fhem am Geräte anzuzeigen.
Leider werden die "Temperatur Aussen*" Variablen nicht als Reading angelegt.
Deviceinfo:
CHN OEQ0350007:1 HM_WD_CARPORT:1
DPT {f} BidCos-RF.abc12345:1.TEMPERATURE = 5.300000 [RE]
DPT {i} BidCos-RF.abc12345:1.HUMIDITY = 94 [RE]
DPT {f} Temperatur Aussen Min Heute = 5.300000 [RWE]
DPT {s} Temperatur Aussen Min Zeit = 18:07 [RWE]
DPT {f} Temperatur Aussen Max Heute = 5.300000 [RWE]
DPT {s} Temperatur Aussen Max Zeit = 18:07 [RWE]
DPT {f} Temperatur Aussen Min Gestern = -59.000000 [RWE]
DPT {f} Temperatur Aussen Max Gestern = -59.000000 [RWE]
Definition:
attr HM_WD_CARPORT ccureadingfilter (^HUMIDITY|^TEMPERATURE);(^Temperatur)
attr HM_WD_CARPORT statedatapoint 1.TEMPERATURE
Es werden nur die Readings:
1.HUMIDITY
1.TEMPERATURE
state
hmstate
angelegt.
Wie kann ich auch die Temperatur Werte aus dem CCU Device anzeigen lassen.
Danke
Interessant. Das habe ich noch nie probiert. Muss ich mir ansehen.
Hallo Zap,
vielen Dank für die Erklärung!
Zitat von: zap am 03 Januar 2018, 17:34:34
Ich kenne die App leider nicht. Da kann ich Dir also nicht helfen.
Ich habe letzte Nacht noch irgendwo gelesen, dass die App wohl auch nicht mehr soooo gut betreut wird. Ob das so ist, weiß ich allerdings nicht.
Hast du eine andere App für Android oder eine ganz andere Alternative? Bin für alles offen, was funktioniert ;)
Zitat von: zap am 03 Januar 2018, 17:34:34
Wenn nach einem Neustart alles weg ist, Du jedoch vorher korrekt gespeichert hattest, liegt es daran, dass die Devices nicht definiert werden konnten. Das wiederum hat im Allgemeinen die Ursache, dass das IO Device (Modul HMCCU) nicht definiert werden konnte.
Die Devices sind auch nicht wirklich weg, solange du nicht nochmal speicherst sondern stehen nach wie vor in der fhem.cfg.
Schau doch mal ins Logfile. Da müssten eigentlich Meldungen stehen, die für die Fehlersuche hilfreich sind.
Im Logfile steht in der Tat, dass die CCU2 nicht erreicht werden konnte:
2018.01.02 22:07:15 0: Server shutdown
2018.01.02 22:07:20 1: Including fhem.cfg
.
.
.
.
2018.01.02 22:07:21 2: eventTypes: loaded 96 events from ./log/eventTypes.txt
2018.01.02 22:07:21 3: Opening CUL_0 device /dev/ttyACM0
2018.01.02 22:07:21 3: Setting CUL_0 serial parameters to 9600,8,N,1
2018.01.02 22:07:21 3: CUL_0: Possible commands: ABbCeFGhiKkLlMmNRTtUuVWXxYZ
2018.01.02 22:07:21 3: CUL_0 device opened
2018.01.02 22:07:26 1: HMCCU: 500 Can't connect to 192.xxx.xxx.xxx:xxxx
2018.01.02 22:07:26 1: define Dimmer_HM HMCCUDEV MExxxxx 1: Cannot detect IO device
2018.01.02 22:07:26 1: Including ./log/fhem.save
2018.01.02 22:07:26 1: configfile: Cannot detect IO device
2018.01.02 22:07:27 3: Email: connected to imapxxxxx
2018.01.02 22:07:27 3: Email: logged in to xxxx@xxxxxx.de
2018.01.02 22:07:27 0: HMCCU: Start of RPC server after FHEM initialization in 12 seconds
2018.01.02 22:07:27 1: usb create starting
2018.01.02 22:07:28 3: Probing CUL device /dev/ttyAMA0
2018.01.02 22:07:28 3: Probing TCM_ESP3 device /dev/ttyAMA0
2018.01.02 22:07:28 3: Probing FRM device /dev/ttyAMA0
2018.01.02 22:07:33 1: usb create end
2018.01.02 22:07:33 2: Messages collected while initializing FHEM: configfile: Cannot detect IO device
2018.01.02 22:07:33 0: Featurelevel: 5.8
2018.01.02 22:07:33 0: Server started with 34 defined entities (fhem.pl:13447/2017-02-19 perl:5.024001 os:linux user:xxxxxx)
2018.01.02 22:07:42 1: HMCCU: Can't connect to CCU port2001
2018.01.02 22:09:26 1: HMCCU: Can't connect to CCU port2001
2018.01.02 22:09:26 1: HMCCU: d_ccu Start of RPC server failed
Warum ist mir ein Rätsel, die läuft auf einem anderen Raspi und alles steht im Bereich von 2m vom Router.....
Zur Zeit funktioniert es in der Weboberfläche mit folgender config:
define Dimmer_HM HMCCUDEV MExxxxx 1
attr Dimmer_HM IODev d_ccu
attr Dimmer_HM ccureadingfilter (^LEVEL$|DIRECTION)
attr Dimmer_HM ccuscaleval LEVEL:0:1:0:100
attr Dimmer_HM cmdIcon on:general_an off:general_aus
attr Dimmer_HM controldatapoint 1.LEVEL
attr Dimmer_HM devStateIcon Initialized:10px-kreis-gelb 0:FS20.off 1:FS20.on .*:dim43%:off
attr Dimmer_HM event-on-change-reading .*
attr Dimmer_HM hmstatevals ERROR_REDUCED!1:error_reduced;;ERROR_OVERHEAT!1:error_overheat;;ERROR_OVERLOAD!1:error_overload
attr Dimmer_HM statechannel 1
attr Dimmer_HM statedatapoint 1.LEVEL
attr Dimmer_HM statevals on:100,off:0
attr Dimmer_HM stripnumber 1
attr Dimmer_HM substexcl control
attr Dimmer_HM substitute ERROR_OVERHEAT,ERROR_OVERLOAD,ERROR_REDUCED!(0|false):no,(1|true):yes;;LEVEL!#0-0:off,#1-100:on;;DIRECTION!0:none,1:up,2:down,3:undefined
attr Dimmer_HM webCmd control:on:off
attr Dimmer_HM widgetOverride control:slider,0,10,100
Was mir allerdings aufgefallen ist, dass die Anzeige springt.
Also Dimmer an 100%, ich drücke auf aus und die Lampe geht aus (slider springt aber noch kurz auf 99% und dann auf 0%)
Ähnlich verhält es sich in anderen Schaltstellungen, immer irgendwie so um 0,5-1% von der Ausgangseinstellung.
Die Verbindungsprobleme mit der CCU können daran liegen, dass die Fiewall Einstellungen auf der CCU nicht korrekt sind. In dem Fall dürfte es aber gar nicht funktionieren.
Wenn der Raspi per WLAN angebunden ist, kann es auch ein Timing Problem sein. Oder der Raspi schaltet das WLAN bei Inaktivität ab.
Versuch mal beim Define HMCCU noch die Option waitforccu=60 anzuhängen. Dann wartet HMCCU bis zu 60 Sekunden auf eine CCU Verbindung. So lange pausiert dann allerdings auch der FHEM Start. Also nicht wundern.
Als App unter IOS nutze ich PocketHM für den Zugriff auf die CCU. Auf FHEM greife ich per Browser zu, falls notwendig (habe fast alles in Homemmatic). Keine Ahnung, ob es die App auch für Android gibt.
Den springenden Slider habe ich auch. Das liegt daran, dass die CCU entsprechende LEVEL Werte schickt. Warum sie das macht, weiß ich nicht.
Hallo Zap,
vielen Dank für deine Rückmeldung.
Ja, die Firewalleinstellungen auf der CCU hatte ich auch erst in Verdacht. Daher hatte ich alles auf Vollzugriff gesetzt anstatt die IP freizugeben.
Das Timing Problem klingt einleuchtend. Glaube bei meinen Eltern wo ich alles über Kabel (Raspi mit fhem und original CCU2) am Router habe, funktionierte es auf Anhieb. Allerdings habe ich dort keinen Dimmer.
Aber ich stelle gleich mal die waitforccu ein.
Hm, ich habe kein IOS mehr. Habe direkt nachgeschaut, leider nicht für Android :-[
Und mein Problem ist, dass ich immer eine VPN-Verbindung benötige oder es halt zu unsicher ist wenn ich die xml-API auf der ccu installiert habe.
Vielleicht hat noch jemand eine andere Lösung?
Ich habe mir die CCU2 nochmal direkt angesehen beim Regeln. Dort sieht man die Springer auch. Scheint also kein fhem, sondern ein CCU"Problem" zu sein.
Mit waitforccu=60 gibt es nach inem laaaaaangen start das:
2018.01.04 21:46:59 1: HMCCU: Deregistering RPC server http://192.xxx.xxx.xxx::7411/fh2001 at http://192.xxx.xxx.xxx::2001/
2018.01.04 21:47:00 0: HMCCU: Stopping RPC server CB2001 with PID 2450
2018.01.04 21:47:00 0: CCURPC: CB2001 Server loop terminated
2018.01.04 21:47:00 2: CCURPC: Eventcount DD = 0
2018.01.04 21:47:00 2: CCURPC: Eventcount EV = 66
2018.01.04 21:47:00 2: CCURPC: Eventcount EX = 1
2018.01.04 21:47:00 2: CCURPC: Eventcount IN = 1
2018.01.04 21:47:00 2: CCURPC: Eventcount ND = 60
2018.01.04 21:47:00 2: CCURPC: Eventcount RA = 0
2018.01.04 21:47:00 2: CCURPC: Eventcount RD = 0
2018.01.04 21:47:00 2: CCURPC: Eventcount SL = 1
2018.01.04 21:47:00 2: CCURPC: Eventcount UD = 0
2018.01.04 21:47:00 2: CCURPC: Eventcount total = 129
2018.01.04 21:47:00 2: CCURPC: Eventcount writeerror = 0
2018.01.04 21:47:02 3: Email: logged out
2018.01.04 21:47:02 3: Email: Disconnected
2018.01.04 21:47:02 1: Including fhem.cfg
.
.
.
.
2018.01.04 21:47:53 0: Server shutdown
2018.01.04 21:47:53 1: HMCCU: Deregistering RPC server http://192.168.1.101:7411/fh2001 at http://192.168.1.104:2001/
2018.01.04 21:48:24 0: HMCCU: Stopping RPC server CB2001 with PID 3778
2018.01.04 21:48:24 0: CCURPC: CB2001 Server loop terminated
2018.01.04 21:48:24 2: CCURPC: Eventcount DD = 0
2018.01.04 21:48:24 2: CCURPC: Eventcount EV = 0
2018.01.04 21:48:24 2: CCURPC: Eventcount EX = 1
2018.01.04 21:48:24 2: CCURPC: Eventcount IN = 1
2018.01.04 21:48:24 2: CCURPC: Eventcount ND = 60
2018.01.04 21:48:24 2: CCURPC: Eventcount RA = 0
2018.01.04 21:48:24 2: CCURPC: Eventcount RD = 0
2018.01.04 21:48:24 2: CCURPC: Eventcount SL = 1
2018.01.04 21:48:24 2: CCURPC: Eventcount UD = 0
2018.01.04 21:48:24 2: CCURPC: Eventcount total = 63
2018.01.04 21:48:24 2: CCURPC: Eventcount writeerror = 0
2018.01.04 21:48:28 1: Including fhem.cfg
2018.01.04 21:48:28 3: telnetPort: xx
2018.01.04 21:48:28 3: WEB:xxx
2018.01.04 21:48:28 3: WEBphone: xxxxxx
2018.01.04 21:48:28 3: WEBtablet: xxxxx
2018.01.04 21:48:29 2: eventTypes: loaded 102 events from ./log/eventTypes.txt
2018.01.04 21:48:29 3: Opening CUL_0 device /dev/ttyACM0
2018.01.04 21:48:29 3: Setting CUL_0 serial parameters to 9600,8,N,1
2018.01.04 21:48:29 3: CUL_0: Possible commands: ABbCeFGhiKkLlMmNRTtUuVWXxYZ
2018.01.04 21:48:29 3: CUL_0 device opened
2018.01.04 21:50:06 1: HMCCU: 500 Status read failed: Connection reset by peer
2018.01.04 21:50:06 1: define Steckdose_HM_WZ HMCCUDEV OExxxxxxx: Cannot detect IO device
2018.01.04 21:50:06 1: define Dimmer_HM HMCCUDEV MExxxxxx 1: Cannot detect IO device
2018.01.04 21:50:06 1: Including ./log/fhem.save
2018.01.04 21:50:06 1: configfile: Cannot detect IO device
Cannot detect IO device
./log/fhem.save: Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Dimmer_HM first
Please define Steckdose_HM_WZ first
Please define Steckdose_HM_WZ first
Please define Steckdose_HM_WZ first
Please define Steckdose_HM_WZ first
Please define Steckdose_HM_WZ first
2018.01.04 21:50:06 3: Email: connected to xxxxxx.xxxxx.de
2018.01.04 21:50:07 3: Email: logged in to xxxxxxxx@xxxxxx.de
2018.01.04 21:50:07 0: HMCCU: Start of RPC server after FHEM initialization in 12 seconds
2018.01.04 21:50:07 1: usb create starting
2018.01.04 21:50:07 3: Probing CUL device /dev/ttyAMA0
2018.01.04 21:50:08 3: Probing TCM_ESP3 device /dev/ttyAMA0
2018.01.04 21:50:08 3: Probing FRM device /dev/ttyAMA0
2018.01.04 21:50:13 1: usb create end
2018.01.04 21:50:13 2: Messages collected while initializing FHEM: configfile: Cannot detect IO device Cannot detect IO device ./log/fhem.save: Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Dimmer_HM first Please define Steckdose_HM_WZ first Please define Steckdose_HM_WZ first Please define Steckdose_HM_WZ first Please define Steckdose_HM_WZ first Please define Steckdose_HM_WZ first
2018.01.04 21:50:13 0: Featurelevel: 5.8
2018.01.04 21:50:13 0: Server started with 34 defined entities (fhem.pl:13447/2017-02-19 perl:5.024001 os:linux userxxxxxxxxxxxxxx)
2018.01.04 21:50:19 2: HMCCU: Create child process with timeouts 0.01 and 0.25
2018.01.04 21:50:19 0: HMCCU: Child process for server CB2001 started with PID 3788
2018.01.04 21:50:19 0: CCURPC: CB2001 Creating file queue /tmp/ccuqueue_2001_1
2018.01.04 21:50:19 0: CCURPC: Initializing RPC server CB2001
2018.01.04 21:50:19 0: RPC server(s) starting
2018.01.04 21:50:19 0: CCURPC: Callback server created listening on port 7411
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for events
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for new devices
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for deleted devices
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for modified devices
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for replaced devices
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for readded devices
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for list devices
2018.01.04 21:50:19 1: CCURPC: CB2001 Adding callback for event query
2018.01.04 21:50:19 0: CCURPC: CB2001 Entering server loop
2018.01.04 21:50:21 0: HMCCU: Received SL event. RPC server CB2001 enters server loop
2018.01.04 21:50:28 1: HMCCU: Registering callback http://192.xxx.xxx.xxx::7411/fh2001 with ID CB2001 at http://192.xxx.xxx.xxx:2001/
2018.01.04 21:51:03 1: HMCCU: RPC callback with URL http://192.xxx.xxx.xxx::7411/fh2001 initialized
Zitat von: avolkmer am 03 Januar 2018, 18:31:58
Hallo,
brauche kleine Hilfe!
Ich versuche gerade aus der CCU Systemvariablen die ich ein Kanal angehängt habe, in Fhem am Geräte anzuzeigen.
Leider werden die "Temperatur Aussen*" Variablen nicht als Reading angelegt.
Deviceinfo:
CHN OEQ0350007:1 HM_WD_CARPORT:1
DPT {f} BidCos-RF.abc12345:1.TEMPERATURE = 5.300000 [RE]
DPT {i} BidCos-RF.abc12345:1.HUMIDITY = 94 [RE]
DPT {f} Temperatur Aussen Min Heute = 5.300000 [RWE]
DPT {s} Temperatur Aussen Min Zeit = 18:07 [RWE]
DPT {f} Temperatur Aussen Max Heute = 5.300000 [RWE]
DPT {s} Temperatur Aussen Max Zeit = 18:07 [RWE]
DPT {f} Temperatur Aussen Min Gestern = -59.000000 [RWE]
DPT {f} Temperatur Aussen Max Gestern = -59.000000 [RWE]
Das liegt vermutlich daran, dass bei den Variablen die Kanalangaben fehlen. Das hatte ich bisher nicht auf der Rechnung, werde es aber einbauen. Sehr spannend: Variablen als eigene Datenpunkte in Devices
Hallo,
versuche gerade meinen Rolladenaktor von Homematic Modell BROLL mit FHEM in Betrieb zu nehmen. Soweit so gut nur leider werden die Attribute nicht automatisch zugeordnet wie bei meinem etrv-2 Heizkörperthermostat. Kann mir jemand helfen beim setzen der Attribute für den Rolladenaktor BROLL von Homematic würde mich über eine Beispiel Konfiguration sehr freuen.
Anbei die deviceinfo:
CHN 00111709A69A08:0 HmIP-BROLL 00111709A69A08:0
DPT {f} HmIP-RF.00111709A69A08:0.ACTUAL_TEMPERATURE = 22.000000 [RE]
DPT {b} HmIP-RF.00111709A69A08:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.00111709A69A08:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.00111709A69A08:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.00111709A69A08:0.ERROR_OVERHEAT = false [RE]
DPT {f} HmIP-RF.00111709A69A08:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {n} HmIP-RF.00111709A69A08:0.RSSI_DEVICE = 180 [RE]
DPT {n} HmIP-RF.00111709A69A08:0.RSSI_PEER = 179 [RE]
DPT {b} HmIP-RF.00111709A69A08:0.UNREACH = false [RE]
DPT {b} HmIP-RF.00111709A69A08:0.UPDATE_PENDING = false [RE]
CHN 00111709A69A08:1 HmIP-BROLL 00111709A69A08:1
DPT {b} HmIP-RF.00111709A69A08:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.00111709A69A08:1.PRESS_SHORT = [E]
CHN 00111709A69A08:2 HmIP-BROLL 00111709A69A08:2
DPT {b} HmIP-RF.00111709A69A08:2.PRESS_LONG = [E]
DPT {b} HmIP-RF.00111709A69A08:2.PRESS_SHORT = [E]
CHN 00111709A69A08:3 HmIP-BROLL 00111709A69A08:3
DPT {f} HmIP-RF.00111709A69A08:3.LEVEL = 1.000000 [RE]
DPT {i} HmIP-RF.00111709A69A08:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69A08:3.SECTION = 15 [RE]
DPT {i} HmIP-RF.00111709A69A08:3.SELF_CALIBRATION = [W]
DPT {b} HmIP-RF.00111709A69A08:3.SELF_CALIBRATION_RESULT = false [RE]
CHN 00111709A69A08:4 HmIP-BROLL 00111709A69A08:4
DPT {f} HmIP-RF.00111709A69A08:4.LEVEL = 1.000000 [RWE]
DPT {i} HmIP-RF.00111709A69A08:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69A08:4.SECTION = 4 [RE]
DPT {b} HmIP-RF.00111709A69A08:4.STOP = [W]
CHN 00111709A69A08:5 HmIP-BROLL 00111709A69A08:5
DPT {f} HmIP-RF.00111709A69A08:5.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.00111709A69A08:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69A08:5.SECTION = 0 [RE]
DPT {b} HmIP-RF.00111709A69A08:5.STOP = [W]
CHN 00111709A69A08:6 HmIP-BROLL 00111709A69A08:6
DPT {f} HmIP-RF.00111709A69A08:6.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.00111709A69A08:6.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69A08:6.SECTION = 0 [RE]
DPT {b} HmIP-RF.00111709A69A08:6.STOP = [W]
CHN 00111709A69A08:7 HmIP-BROLL 00111709A69A08:7
DPT {i} HmIP-RF.00111709A69A08:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.00111709A69A08:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
DPT {i} HmIP-RF.00111709A69A08:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = [W]
Als Attribute habe ich bisher nur:
IODev d_ccu
room Homematic
Viele Grüße und vielen Dank
Weekeda
Vielleicht so:
ccureadingfilter LEVEL
ccureadingname 4.LEVEL:+pct
ccuscaleval LEVEL:0:1:0:100
cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint 4.LEVEL
event-on-change-reading .*
eventMap /datapoint 4.STOP 1:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/
genericDeviceType blind
stateFormat { my $l = ReadingsVal ($name, "4.LEVEL", "na"); sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %"; }
statedatapoint 4.LEVEL
stripnumber 1
substexcl control|pct
substitute LEVEL!#0-0:closed,#100-100:open
webCmd up:down:stop:control
widgetOverride control:slider,0,10,100
Wenn die "4." nicht funktioniert, versuche es mit "5." oder "6.". Ansonsten: wenn Du erst mal das Prinzip verstanden hast, sollte es kein Problem sein, die Attribute für neue Geräte herauszufinden.
Hallo Zap,
ich habe heute einen HmIP-SWDO-I (Fensterkontakt, verdeckter Einbau) in Betrieb genommen.
Die Datapoints etc sind - war auch nicht anders zu erwarten - identisch zum HmIP-SWDO.
Würdest du den Typ in die Defaults mit aufnehmen?
CHN 00109709A3C264:0 Hm_Test:0
DPT {b} HmIP-RF.00109709A3C264:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.00109709A3C264:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.00109709A3C264:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.00109709A3C264:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.00109709A3C264:0.OPERATING_VOLTAGE = 3.000000 [RE]
DPT {n} HmIP-RF.00109709A3C264:0.RSSI_DEVICE = 167 [RE]
DPT {n} HmIP-RF.00109709A3C264:0.RSSI_PEER = 0 [RE]
DPT {b} HmIP-RF.00109709A3C264:0.SABOTAGE = false [RE]
DPT {b} HmIP-RF.00109709A3C264:0.UNREACH = false [RE]
DPT {b} HmIP-RF.00109709A3C264:0.UPDATE_PENDING = false [RE]
CHN 00109709A3C264:1 HmIP-SWDO-I 00109709A3C264:1
DPT {i} HmIP-RF.00109709A3C264:1.STATE = 1 [RE]
Danke!
VG
Christian
Das ist sehr Interessant, gibt es irgendwo eine Datenbank wo die Definitionen zu anderen Geräten stehen zum Beispiel für:
HM-RC-4-3
HmIP-FAL24-C6
HM-LC-Bl1PBU-FM
HM-LC-Sw1-Pl-CT-R1
HM-RCV-50
HM-PB-4Dis-WM-2
oder wie kann man die nötigen Informationen erhalten?
Hi,
entweder hier im Thread, in den Defaults oder selber probieren.
Hier mein FAL230-10 als Einstieg:
ccureadingfilter (^STATE|^state|^HUMIDITY_ALARM|^HUMIDITY_LIMITER)
ccureadingformat datapoint
event-on-change-reading .*
room Heizung
stateFormat Feuchtealarm: 0.HUMIDITY_ALARM / Kanal 1: 1.STATE /2: 2.STATE /3: 3.STATE /4: 4.STATE /5: 5.STATE /6: 6.STATE /7: 7.STATE /8: 8.STATE /9: 9.STATE /10: 10.STATE /
VG
Christian
Hallo,
ich habe nun auch eine Konfigutation mit YAHM und FEHM auf einem Raspberry Pi am laufen, so weit auch sehr gut.
Ein paar Dinge konnte ich allerdings noch nicht herausfinden, speziell betrifft es zwei Getäte:
- HmIP-STHD: dafür gibt es keine default Konfiguration. Ich hab mir jetzt eine "zusammengebastelt", die die aktuelle Temperatur und Luftfeuchte liefert, alle anderen Funktionen sind derzeit aber nicht konfiguriert. Hat jemand von euch dieses Gerät im Einsatz und eine gute Konfiguration erstellt?
- HM-OU-CFM-TW: Dafür gibt es eine default Konfiguration allerdings bekomme ich damit nur die LED und nicht den MP3 Teil zum laufen. D.h. LED on/off funktioniert, Sound jedoch garnicht.
Ich habe auch noch eine allgemeine Frage, wo ich noch keine Antwort gefunden habe. Wie kann ich ein Logfile für ein Gerät erstellen, so wie es mit in FEHM direkt angelegten Geräten automatisch gemacht wird. Wäre schön, z.B. für Graphen.
Hi,
der HmIP-STHD ist gleich mit dem HmIP-WTH-2...das Drehrad kennt FHEM nicht.;-)
Hier findest du die Konfig dazu:
https://forum.fhem.de/index.php/topic,51339.msg560126.html#msg560126
Bei dem HM-OU-CFM-TW kann ich dir leider nicht helfen...
VG
Christian
Hallo zusammen,
entweder ich bin zu dumm zum finden oder für den HmIP-SWO-PR gibt es noch keine defaults.
Kann mir das wer bestätigen ? Und ggf. etwas unter die Arme greifen wir ich an "normale" Werte innerhalb des fhem komme, also so was wir Temperatur, Luftfeuchtigkeit, Regen und das auch noch so das er bei bestimmten wichtigen Wertänderungen (Regen: binär) reagiert.
Ich muss gestehen, das ich etwas "überfordert" bin mit HMCCU, aber es wegen seiner Stabilität begreifen möchte.
Danke schon Mal für einige Tipps, Hilfen und Anregungen.
Grimm
Definiere das Gerät mit HMCCUDEV, mach ein get deviceinfo und poste das Ergebnis
Hi,
getan, bin auch etwas weiter. Der Channel 1 liefert, wenn ich es richtig verstehe, alle Daten. 0 ist der technische und alle channel >1 bieten die Einstellmöglichkeiten.
Habe mal den ccureadingfilter so gestzt bei dem channel1 device:
(^UNREACH|^RAINING|^WIND_DIR|^WIND_SPEED|^HUMIDITY|^RAIN_COUNTER|^ACTUAL_TEMPERATURE|^ILLUMINATION|^LOW_BAT)
Damit hat er imho die notwendigen Werte. Bin mir aber nicht sicher das das so der optimale Weg ist.
Danke für deine Mühe.
Grimm
Zitat von: Grimmschak am 29 Mai 2018, 17:49:27
Hi,
getan, bin auch etwas weiter. Der Channel 1 liefert, wenn ich es richtig verstehe, alle Daten. 0 ist der technische und alle channel >1 bieten die Einstellmöglichkeiten.
Habe mal den ccureadingfilter so gestzt bei dem channel1 device:
(^UNREACH|^RAINING|^WIND_DIR|^WIND_SPEED|^HUMIDITY|^RAIN_COUNTER|^ACTUAL_TEMPERATURE|^ILLUMINATION|^LOW_BAT)
Damit hat er imho die notwendigen Werte. Bin mir aber nicht sicher das das so der optimale Weg ist.
Der Filter ist schon mal ok. LOW_BAT und UNREACH benötigst Du eigentlich nicht, da diese Werte immer übernommen werden. Wenn Dich bei den Zahlen die vielen Nachkommastellen stören, kannst Du die wie folgt zB auf 1 Stelle begrenzen:
stripnumber 1
Bestimmte Werte kannst Du auch umwandeln. Um zB aus dem true/false bei einem Datenpunkt STATE ein yes/no zu machen:
substitute STATE!(0|false):no,(1|true):yes
Das funktioniert auch für nummerische Bereiche, wie hier WIND_DIR. Wenn Du die Einteilung kennst, könntest Du folgendes definieren:
substitute WIND_DIR!#0-22:N,#23-67:NO,#68-112:O,#113-157:SO,#158-202:S,#203-247:SW,#248-292:W,#293-337:NW,#338-360:N
Damit hast Du dann statt den Grad-Werten die Windrichtungen (in der Doku nachlesen, ob meine Annahme der Einteilung stimmt).
Hi zap,
erstmal Danke :D
So bin schon recht zufrieden, aber wie komme ich an das reading aus der devlist
svHmIPRainCounterToday_2397
Mit ccureadingfilter darauf kommt nichts, irgend ein Vorschlag ?
PS wenn ich fertig habe, poste ich gern meine Ergüsse :o
Grimm
Deine Einstellungen würde ich dann für die Defaults übernehmen, insofern immer her damit!
Leider sind die letzten Einträge in der Deviceinfo keine echten Datenpunkte. Diese werden daher nicht automatisch aktualisiert. Das liegt auch nicht an HMCCU sondern an der CCU Software.
Workaround: Du definierst ein AT in FHEM, das regelmäßig ein get update auf das HMCCUDEV Device macht oder ein get datapoint für das gewünschte Reading (falls das funktioniert, vorher mal manuell testen).
Hi Zap,
leider geht der Befehl
get garten.wetter datapoint svHmIPRainCounterToday_2397
nicht, Invalid datapoint.
Der datapoint ist, in der ccu2 nachgeschaut ein systeminternes Programm.
Ich habe nichts gefunden, weder in Channel, Device noch in der CCU um das auszulesen.
Für Variablen gibt es immer hin die vars in der CCU selbst.
Ich denke da wäre eine "Erweiterung" fällig, oder ? :-)
Grimm
ach ja meine def:
define garten.wetter.stat HMCCUCHN garten.wetter.stat defaults
attr garten.wetter.stat IODev d_ccu
attr garten.wetter.stat ccureadingfilter (^UNREACH|^RAIN|^WIND|^HUMIDITY|^ACTUAL_TEMPERATURE|^ILLUMINATION|^LOW_BAT|^Rain)
attr garten.wetter.stat ccureadingformat datapoint
attr garten.wetter.stat ccureadings 1
attr garten.wetter.stat room Garten,Homematik
attr garten.wetter.stat stateFormat T: 1.ACTUAL_TEMPERATURE° H: 1.HUMIDITY% R: 1.RAIN_COUNTER mm W: 1.WIND_SPEED km/h WR: 1.WIND_TEXT
attr garten.wetter.stat userReadings 1.WIND_TEXT { myTwilight_CompassPoint((ReadingsVal("garten.wetter.stat", "1.WIND_DIR", 0)));;;; }
wobei myTwilight_CompassPoint in der 99_MyUtils:
#########################################################
## Wandelt die Kompass daten der Wetterstation
## in Klartext Himmelsrichtung um
#########################################################
sub myTwilight_CompassPoint($) {
my ($azimuth) = @_;
my $compassPoint = "unknown";
if ($azimuth < 11.25) {
$compassPoint = "N";
} elsif ($azimuth < 33.75) {
$compassPoint = "NNO";
} elsif ($azimuth < 56.25) {
$compassPoint = "NO";
} elsif ($azimuth < 78.75) {
$compassPoint = "ONO";
} elsif ($azimuth < 101.25){
$compassPoint = "O";
} elsif ($azimuth < 123.75) {
$compassPoint = "OSO";
} elsif ($azimuth < 146.25){
$compassPoint = "SO";
} elsif ($azimuth < 168.75) {
$compassPoint = "SSO";
} elsif ($azimuth < 191.25){
$compassPoint = "S";
} elsif ($azimuth < 213.75) {
$compassPoint = "SSW";
} elsif ($azimuth < 236.25){
$compassPoint = "SW";
} elsif ($azimuth < 258.75) {
$compassPoint = "WSW";
} elsif ($azimuth < 281.25){
$compassPoint = "W";
} elsif ($azimuth < 303.75) {
$compassPoint = "WNW";
} elsif ($azimuth < 326.25){
$compassPoint = "NW";
} elsif ($azimuth <= 348.75) {
$compassPoint = "NNW";
} elsif ($azimuth <= 361) {
$compassPoint = "N";
}
return $compassPoint;
}
Zitat von: Grimmschak am 31 Mai 2018, 19:03:46
leider geht der Befehl
get garten.wetter datapoint svHmIPRainCounterToday_2397
nicht, Invalid datapoint.
Der datapoint ist, in der ccu2 nachgeschaut ein systeminternes Programm.
Ich habe nichts gefunden, weder in Channel, Device noch in der CCU um das auszulesen.
Für Variablen gibt es immer hin die vars in der CCU selbst.
Ich denke da wäre eine "Erweiterung" fällig, oder ? :-)
Ja gerne, wenn Du mir sagst wie :-(
Ich kann in HMCCU nur die Schnittstellen nutzen, die die CCU bereitstellt. Kommst Du in der CCU über den Script Editor an den Code des systeminternen Programms ran? Ich habe leider kein Gerät mit diesen Erweiterungen, daher kann ich das bei mir nicht nachvollziehen.
Ist es wirklich ein Programm oder eine verknüpfte Variable?
Tja,
erstmal: Es scheint eine ein Objekt zu sein, nirgendwo sonst zu sehen, wird über mehrere interne Programm gefüttert.
dom.GetObject('svHmIPRainCounterToday_2397')
Das wird in den Programmen so benutzt.
Meine Hoffnung, das es, da in den deviceinfos auftaucht, irgenwie abfragbar ist.
Grimm
Zitat von: Grimmschak am 31 Mai 2018, 20:05:42
Tja,
erstmal: Es scheint eine ein Objekt zu sein, nirgendwo sonst zu sehen, wird über mehrere interne Programm gefüttert.
dom.GetObject('svHmIPRainCounterToday_2397')
Das wird in den Programmen so benutzt.
Meine Hoffnung, das es, da in den deviceinfos auftaucht, irgenwie abfragbar ist.
Grimm
Wenn man an den Ausduck oben noch ein .Value() anhängt, wird wahrscheinlich der Wert zurück gegeben.
Mehr Kopfzerbrechen mach mir der Zusatz _2397. Vermutlich werden diese Objekte dynamisch beim Anlernen angelegt und diese ID angehängt. Das ist dann bei jeder CCU und bei jedem Gerät unterschiedlich.
Evtl würde eines der Tools von badenpower hier weiterhelfen. Aber das ist ein schwieriges Thema
Update: das scheinen in der CCU unsichtbare Systemvariablen zu sein.
Hallo zusammen,
ich versuche, mit meinem Außen- und Innenthermostat über CCU2 und FHEM eine Lüftersteuerung mit dewpoint hinzubekommen. Die Berechung des Taupunkts klappt prima:
define Taupunkt_Schuppen_Temperatursensor dewpoint dewpoint HM_Schuppen_Temperatursensor 1.TEMPERATURE 1.HUMIDITY dewpoint
Nun würde ich gern mit dewpoint fan die Lüftersteuerung angehen. Leider scheint das aber nur mit den Standardreadings "temperature" und "humidity" zu finktionieren nd nicht mit den Readings, die ich aus der CCU2 bekomme (1.TEMPERATURE und 1.HUMIDITY). Bei Nutzung von dewpoint fan kann ich anscheinend auch nicht die Namen der Readings mitgeben und habe keine Idee mehr, wie ich dewpoint fan nutzen kann.
Könnt Ihr mit hierbei weiterhelfen?
Vielen Dank!
Miwu
Du kannst Readings mit dem Attribut ccureadingname umbenennen oder unter anderem Namen bereitstellen.
Umbenennen:
ccureadingname 1.HUMIDITY:humidity
Ergänzen:
ccureadingname 1.HUMIDITY:+humidity
Mit einem Semikolon kannst Du mehrere solcher Regeln angeben.
Siehe auch commandref.
Vielen Dank, das funktioniert prima.
Hi zap,
gibt es von deiner Seite neue Erkenntnisse bzgl der Systemvariablen/Programme :
DPT {f} svHmIPRainCounterYesterday_2397 = 0.000000 [RWE]
DPT {f} svHmIPRainCounterToday_2397 = 0.000000 [RWE]
Zumindest wie man drauf zugreifen könnte mit fhem/HMCCU.
Leider sind dieses die Werte die die Regenmenge heute und gestern haben. Das attribut:
1.RAIN_COUNTER
hat leider nur einen Aufzähl-wert, welcher spätestens nach einem Wertereset oder overflow nichtssagend ist.
Habe da immer noch die Hoffnung das da einer eine Lösung weiss/hat :-)
Ein Abbilden der internen CCU Funktionen fände ich suboptimal.
Gruß
Grimm
ich habe leider kein Gerät mit diesen seltsamen Datenpunkten. Daher kann ich das nicht testen. Ich stelle aber heute abend mal ein Homematic Script bereit, das Du mal testweise ausführen kannst. Vielleicht bringt uns das weiter.
Hattest Du schon mal versucht, die Werte mit "get datapoint" abzufragen? Auch ein "get update" müsste eigentlich die Readings aktualisieren.
Hi,
get garten.wetter.stat datapoint svHmIPRainCounterToday_2397
bringt invalid datapoint, sowohl auf channel wie device.
Die HMCCU selbst jat ja kein get datapoint.
get update bringt diese Readings allerdings nicht. Nur deviceinfo hat sie. Ich denke das bei den device-Abfragen genau mit der Hirachie gearbeitet wird, HmIP-RF.001858A98C1A9A deviceinfo benutzt imho einen anderen Weg der Abfrage als get datapoint oder update.
Aber sind nur Vermutungen.
Ich versuche, das mal nachzubauen indem ich eine Systemvariable mit einem Gerätekanal verknüpfe. Ohne Testgerät ist praktisch unmöglich, da weiter zu kommen.
Hi,
ja das funktioniert. Habe das eben probiert. Zeigt zumindest gleiches Verhalten.
Bei Deviceinfo:
DPT {f} test1 = 23.000000 [RWE]
Aber bei get datpoint kein Eintrag.
Also taucht die Variable nicht in der Hirachie auf, ist aber mit dem device Verknüpft.
Ich glaube, ich habe den Fehler gefunden. Noch ein wenig Geduld bitte ...
Hi zap,
will definitiv nicht drängeln, aber wieviel ist ein klein wenig ? 1 Woche, 1 Monat.... nur so cirka, damit ich etwas schauen kann ob ich erstmal die die nächsten devices schauen kann...
lg Grimm
Inzwischen habe ich es geschafft, dass Systemvariablen, die mit Kanälen verknüpft sind, korrekt als Datenpunkte in HMCCU erkannt werden. Bisher wurden die alle als leerer String übernommen, daher die Meldung "Invalid Datapoint".
Leider schlagen alle Versuche, auf diese "Pseudo-Datenpunkte" per Homematic Script zuzugreifen fehl.
Beispiel: Systemvariable "Strom" verknüpft mit dem Kanal MEQ0704268:1
Weder
datapoints.Get("BidCos-RF.MEQ0704268:1.Strom")
noch
dom.GetObject("BidCos-RF.MEQ0704268:1.Strom")
Liefern ein gültiges Objekt zurück. Dementsprechend schlägt der Value() Call fehl. Der direkte Zugriff auf die Systemvariable Strom über das I/O Device hingegen funktioniert, zB
set d_ccu var Strom 2
Aber dann hast Du das Reading im I/O Device und nicht in dem verknüpften Kanal.
Kannst Du anhand der Programme in deiner CCU sehen, wie dort auf diese speziellen Werte zugegriffen wird?
Hi zap,
die Defs im Script:
object chn = dom.GetObject('2397');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER_OVERFLOW');
object oRainCounter = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER');
object oSysVarRain = dom.GetObject('svHmIPRainCounter_2397_001858A98C1A9A:1');
object oSysVarRainOldVal = dom.GetObject('svHmIPRainCounterOldVal_2397');
object oSysVarCounterToday = dom.GetObject('svHmIPRainCounterToday_2397');
object oSysVarCounterYesterday = dom.GetObject('svHmIPRainCounterYesterday_2397');
und der Zugriff im Script:
oSysVarCounterToday.State(todayTotal);
Das sind alles Systeminterne Scripte, genauer 3 Stück, Der Daily, sowie einmal Sonnenscheindauer und Regenmenge.
Der Daily schreibt Tageswerte in Yesterdaywerte und resettet die Tagesmengen.
Die anderen sorgen dafür das Änderungen in die daily-Werte fließen.
Habe entdeckt das der HMIP Schalter auch 2 Scripte macht um das gleiche mit Energie/Verbrauch auf basis heute und gestern zu machen.
Hoffe das hilft dir. Hast du mal geschaut ob der DeviceInfo anders zugreift, da stehen ja Werte mit drin.
Gruß
Grimm
Das hilft schon mal etwas weiter. DeviceInfo macht eine große Schleife über die Datenpunkte. Daher funktioniert das dort. Für eine Abfrage per "get datapoint" ist mir das aber zu ineffizient.
Hi zap,
du wirst das schon machen ;D
Wenn du noch was brauchst, meld dich. Bin ja egoistisch, gerade die Regenmengen sind für mich wichtig, immer die Statistiker... :D
Gruß
Grimm
Aber eigentlich sollte sowas auch jetzt schon gehen:
get d_ccu vars svHmIPRainCounterToday_2397
Wenn d_ccu das IO Device ist. Das Reading steht dann im IO Device.
Hi zap,
Nein klappt leider nicht. Gibt eine leere Antwort.
Die Variable: svHmIPRainCounterToday_2397 ist auch in der CCU nicht in den Variablen sichtbar (auch nicht als systemintern).
Habe es mal mit einer sichtbaren Systemvariablen versucht, diese ist in dem IO device sichtbar.
Das mit svHmIPRainCounterToday_2397 scheint mir nur im Programmierspeicher der CCU abzulaufen.
Deshalb befürchte ich, braucht man da die "große Keule", welche du ja anscheinend im deviceinfo schwingst.
Schade das du das nicht selber checken kannst.
Kann man die Variable auch unter Einstellungen - Systemvariablen nicht sehen? Verknüpfte Variablen sind nur dort sichtbar, nicht in der Werte Übersicht.
Nein da sind diese Variablen nicht sichtbar. Im Gegensatz zur selbst angelegten und verknüpften.
Egal ob mit oder ohne Filter. Deshalb habe ich sie ja auch im Coding gesucht. Da werden sie benutzt und auch dann in der Anzeige des Devices in der CCU2
Mittlerweile habe ich es geschafft, einzelne verknüpfte Variablen auszulesen. Ich baue den HM Script Code in HMCCU ein und hoffe, dass das dann auch mit den unsichtbaren Variablen funktioniert.
Klingt gut. Du gibst Bescheid, wenn via update verfügbar ?
Gesendet von meinem SM-G930F mit Tapatalk
Mit der neuen Version sollte zumindest die Aktualisierung dieser speziellen Datenpunkte mit dem Befehl "get update" funktionieren.
Bin gespannt wie Flitzebogen... Leider noch nicht im Repository als Update verfügbar :-X
zap du bist mein Held !!!
Ich nutze neben den Homematic Steuerungen auch noch einzelne Somfy-RTS Rolladensteuerungen.
Diese lassen sich nicht unmittelbar in Homematic einbinden, ich nutze hierfür FHEM mit einem CUL.
Da meine Steuerung aber ansonsten im Wesentlichen die CCU (Raspimatic) nutze, ist das HMCCU für mich ideal. Ich kann alles in der CCU programmieren und die Steuerbefehle an FHEM übergeben.
In der CCU habe ich dazu ein CUxD device angelegt. (Funk-Rollladenaktor 1-fach für Markenschalter, Unterputz)
In FHEM habe ich den maßgeblichen Channel als HMCCU device angelegt.
Letztlich lassen sich aber nur Positionen von CCU an FHEM übergeben werden. D.h. Entweder 0 für geschlossen bzw. Runterfahren oder 100 für offen oder hoch fahren, alternativ können in der ccu Zwischenwerte eingestellt werden, die dann im Reading Level entsprechend übertragen werden.
Nicht möglich ist es einen Stop-Befehl zu setzen (zumindest habe ich das nicht gefunden)
Hier meine Attribute
attr SomfyRTS IODev d_ccu
attr SomfyRTS ccureadingfilter (LEVEL)
attr SomfyRTS ccuscaleval LEVEL:0:1:0:100
attr SomfyRTS cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
attr SomfyRTS controldatapoint LEVEL
attr SomfyRTS event-on-update-reading .*
attr SomfyRTS eventMap /datapoint LEVEL 0:down/datapoint LEVEL 100:up/
attr SomfyRTS group Allgemein
attr SomfyRTS peer 1.LEVEL:$1.LEVEL <= 100:fhem:set RolloD1_3 pos $value;;
attr SomfyRTS room CCU2,Dach
attr SomfyRTS statedatapoint LEVEL
attr SomfyRTS substexcl control
attr SomfyRTS webCmd up:down:control
attr SomfyRTS widgetOverride control:slider,0,10,100
Für Verbesserungsvorschläge bin ich offen, bzw. Freue mich drauf
K-H
Hallo zusammen,
ich probieren mich gerade an einem HmIP-FROL. Dieser wurde hier im Forum auch mal kurz angesprochen.
Bin auch, nach meiner Einschätzung, gut vorrangekommen. hier meine Confi
defmod d_roll_m HMCCUDEV HmIP-FROLL-m
attr d_roll_m IODev d_ccu
attr d_roll_m ccureadingfilter (LEVEL|PROCESS|SECTION|PRESS)
attr d_roll_m ccureadingname LEVEL
attr d_roll_m ccuscaleval LEVEL:0:1:0:100
attr d_roll_m cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
attr d_roll_m controldatapoint 4.LEVEL
attr d_roll_m eventMap /datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/
attr d_roll_m genericDeviceType blind
attr d_roll_m room all,mira
attr d_roll_m stateFormat { my $l = ReadingsVal ($name, "3.LEVEL", "na");; sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %";; }
attr d_roll_m statedatapoint 3.LEVEL
attr d_roll_m stripnumber 1
attr d_roll_m substexcl control
attr d_roll_m substitute LEVEL!#0-0:closed,#100-100:open;;PROCESS!(0|false):no,(1|true):yes
attr d_roll_m webCmd control:up:stop:down
attr d_roll_m widgetOverride control:slider,0,10,100
Damit funktioniert auch erst mal alles. Jetzt kommen aber die Feinheiten. Der slider steht nach jedem neustart von fhem auf "0". Erst durch Einstellungen mit
dem slider hat er dann einen korrekten Wert. Hat einer eine Idee wie ich den Wert von 3.LEVEL auf den slider bekommen, aber trotzdem 4.LEVEL mit Werten beschicke ?
Weiterhin hat der HmIP-FROL noch zwei Taster zu lokalen Bedienung.
Mit get deviceinfo sehe ich dazu auch Eintragungen
CHN 001158A98B28ED:0 HmIP-FROLL-m:0
DPT {f} HmIP-RF.001158A98B28ED:0.ACTUAL_TEMPERATURE = 27.000000 [RE]
DPT {b} HmIP-RF.001158A98B28ED:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.001158A98B28ED:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.001158A98B28ED:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.001158A98B28ED:0.ERROR_OVERHEAT = false [RE]
DPT {f} HmIP-RF.001158A98B28ED:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {n} HmIP-RF.001158A98B28ED:0.RSSI_DEVICE = 220 [RE]
DPT {n} HmIP-RF.001158A98B28ED:0.RSSI_PEER = 210 [RE]
DPT {b} HmIP-RF.001158A98B28ED:0.UNREACH = false [RE]
DPT {b} HmIP-RF.001158A98B28ED:0.UPDATE_PENDING = false [RE]
CHN 001158A98B28ED:1 HmIP-FROLL 001158A98B28ED:1
DPT {b} HmIP-RF.001158A98B28ED:1.PRESS_LONG = false [E]
DPT {b} HmIP-RF.001158A98B28ED:1.PRESS_SHORT = false [E]
CHN 001158A98B28ED:2 HmIP-FROLL 001158A98B28ED:2
DPT {b} HmIP-RF.001158A98B28ED:2.PRESS_LONG = false [E]
DPT {b} HmIP-RF.001158A98B28ED:2.PRESS_SHORT = false [E]
CHN 001158A98B28ED:3 HmIP-FROLL 001158A98B28ED:3
DPT {f} HmIP-RF.001158A98B28ED:3.LEVEL = 0.310000 [RE]
DPT {i} HmIP-RF.001158A98B28ED:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B28ED:3.SECTION = 15 [RE]
CHN 001158A98B28ED:4 HmIP-FROLL 001158A98B28ED:4
DPT {f} HmIP-RF.001158A98B28ED:4.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.001158A98B28ED:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B28ED:4.SECTION = 0 [RE]
DPT {b} HmIP-RF.001158A98B28ED:4.STOP = false [W]
CHN 001158A98B28ED:5 HmIP-FROLL 001158A98B28ED:5
DPT {f} HmIP-RF.001158A98B28ED:5.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.001158A98B28ED:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B28ED:5.SECTION = 0 [RE]
DPT {b} HmIP-RF.001158A98B28ED:5.STOP = false [W]
CHN 001158A98B28ED:6 HmIP-FROLL 001158A98B28ED:6
DPT {f} HmIP-RF.001158A98B28ED:6.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.001158A98B28ED:6.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B28ED:6.SECTION = 0 [RE]
DPT {b} HmIP-RF.001158A98B28ED:6.STOP = false [W]
CHN 001158A98B28ED:7 HmIP-FROLL 001158A98B28ED:7
DPT {i} HmIP-RF.001158A98B28ED:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.001158A98B28ED:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = 0 [W]
DPT {i} HmIP-RF.001158A98B28ED:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = 0 [W]
Aber ein Reading bekomme ich dazu nicht. hat dazu einer eine Idee?
Viele Grüße
Das mit der Aktualisierung von PRESS_xx Datenpunkten wird immer wieder gefragt. Das ist eine unschöne Eigenheit der CCU. Man muss die Datenpunkte in der CCU mit einem Dummy Programm verknüpfen. Beispiel: PRESS_SHORT abfragen und eine Systemvariable setzen. Erst dann aktualisiert die CCU diese Datenpunkte.
Außerdem muss für diese Readings in FHEM event-on-update-reading gesetzt werden (z.B. auf PRESS.*), da PRESS_xxx immer true liefert und sich daher nie ändert.
Danke zap genau das wars. Jetzt tun auch die PRESS-Readings.
Lustig ist aber das ich jetzt das Dummy-prog löschen kann und die Readings werden weiter bedient. Merkwürdig.
Ich werde meine Config noch ein paar Tage testen und wenn alles richtig tut die Config als default bereitstellen.
Könnte dann beim nächsten Neustart der CCU wieder nicht funktionieren
Hallo,
ich habe mir den neuen Wassersensor HmIP-SWD zugelegt und hier mein erster Versuch:
attr Wassersensor ccureadingfilter (^ALARMSTATE|^LOW_BAT|^UNREACH|^MOISTURE_DETECTED|^WATERLEVEL_DETECTED|^ERROR_NON_FLAT_POSITIONING|^ERROR_CODE)
attr Wassersensor ccureadingformat datapoint
attr Wassersensor ccureadingname 0.(LOWBAT|LOW_BAT):+battery
attr Wassersensor event-on-change-reading .*
attr Wassersensor genericDeviceType LeakSensor
attr Wassersensor homebridgeMapping LeakDetected=1.ALARMSTATE,values=ok:0;Alarm:1 StatusTampered=0.ERROR_NON_FLAT_POSITIONING StatusFault=0.ERROR_CODE
attr Wassersensor room Hauswirtschaftsraum,Homekit,alexa
attr Wassersensor stateFormat Status: 1.ALARMSTATE /Feuchtigkeitserkennung: 1.MOISTURE_DETECTED /Wassererkennung: 1.WATERLEVEL_DETECTED
statedatapoint 1.ALARMSTATE
attr Wassersensor substitute ALARMSTATE!(0|false):ok,(1|true):Alarm;LOW_BAT!(0|false):ok,(1|true):low;MOISTURE_DETECTED!(0|false):ok,(1|true):Alarm;WATERLEVEL_DETECTED!(0|false):ok,(1|true):Alarm;ERROR_NON_FLAT_POSITIONING!(0|false):0,(1|true):1
Hier noch für interessierte die Datapoints:
CHN 001898A99269AB:0 HmIP-Wassersensor:0
DPT {b} HmIP-RF.001898A99269AB:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.001898A99269AB:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.001898A99269AB:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.001898A99269AB:0.ERROR_NON_FLAT_POSITIONING = false [RE]
DPT {b} HmIP-RF.001898A99269AB:0.INSTALL_TEST = true [RW]
DPT {b} HmIP-RF.001898A99269AB:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.001898A99269AB:0.OPERATING_VOLTAGE = 3.100000 [RE]
DPT {i} HmIP-RF.001898A99269AB:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.001898A99269AB:0.RSSI_DEVICE = 208 [RE]
DPT {n} HmIP-RF.001898A99269AB:0.RSSI_PEER = 0 [RE]
DPT {b} HmIP-RF.001898A99269AB:0.UNREACH = false [RE]
DPT {b} HmIP-RF.001898A99269AB:0.UPDATE_PENDING = false [RE]
CHN 001898A99269AB:1 HmIP-SWD 001898A99269AB:1
DPT {b} HmIP-RF.001898A99269AB:1.ALARMSTATE = false [RE]
DPT {b} HmIP-RF.001898A99269AB:1.MOISTURE_DETECTED = false [RE]
DPT {b} HmIP-RF.001898A99269AB:1.WATERLEVEL_DETECTED = false [RE]
Das Ding ist echt klein, sehr laut und funktioniert in der Spüle ganz hervorragend. ;-)
Auf dem Iphone poppt sogar automatisch ein Hinweis hoch...hoher WAF!
Falls noch jemand eine Verbesserung hat, gerne her damit!
Viele Grüße
Christian
Hallo,
habe leider Probleme mit meinem HMIP-SWDO.
Habe das Gerät wie hier beschrieben angelegt, bei einem get config erhalte ich allerdings "No response from CCU. CCU returned no data". Führe ich ein get update aus kommen alle Werte richtig rein. Bei meinen anderne HM Geräten funktioniert alles prima, muss aber sagen dass der HMIP-SWDO mein erstes HM-IP Gerät ist. Gilt es hier etwas besonderes zu beachten? Sorry falls die Frage schon einmal gestellt wurde.
Schönen Abend und vielen Dank,
Emanuel
Der Befehl get config funktioniert nur, wenn auch konfigurierbare Parameter vorhanden sind. Der Befehl ohne weitere Angabe bezieht sich auf das Device. Probier mal, ob es mit der Angabe einer Kanalnummer etwas liefert, also z.B.
get config 0
damit werden neue Readings angelegt, allerdings aktualisieren sich diese auch nicht selbst, sondern nur nach einem get update. Was kann ich machen damit ich den Status automatisch übermittelt bekomme?
Vielen Dank
Datenpunkte und Config Parameter sind zwei grundsätzlich verschiedene Dinge. Datenpunkte sind zB Dinge wie Temperatur, Luftfeuchte oder Status eines Fensterkontakts. Datenpunkte werden entweder automatisch durch einen RPC Server aktualisiert oder manuell per get update.
Config Parameter hingegen entsprechen den Geräteeinstellungen in der CCU (Menü Einstellungen / Geräte, dann beim Gerät auf einstellen klicken). Hier wird zB die Verschlüsselung ein-/ausgeschaltet oder auch das Verhalten eines Rollladenaktors beim Drücken einer Taste festgelegt. Dinge eben, die man nur selten ändert.
Diese Config Parameter werden mit get config, get configlist oder get configdesc gelesen und mit set config geschrieben. Sie können NICHT automatisch aktualisiert werden, da die CCU das nicht unterstützt.
Sowohl für Datenpunkte als auch für Config Parameter muss ccureadingfilter so gesetzt sein, dass die gewünschten Readings zum Filter passen.
Vielen Dank für die ausführliche Erklärung! Ich hatte letztendlich einen Fehler im RPCserver, hab ihn jetzt als "procrpc" laufen und nun wird alles wie gewünscht automatisch aktualisiert.
lg
Hallo zusammen
hat schon einmal jemand einen HmIP-SLO eingebunden?
Was ist hier der zu verwendende datapoint?
das ist mein Sensor
Internals:
CFGFN
DEF Lichtsensorvorn:1
IODev CCU2
NAME Lichtsensor
NR 64924
STATE Initialized
TYPE HMCCUCHN
ccuaddr 000D58A9915D2D:1
ccudevstate active
ccuif HmIP-RF
ccuname Lichtsensorvorn:1
ccutype HmIP-SLO
channels 1
chntype COND_SWITCH_TRANSMITTER
firmware 1.0.16
statevals devstate
READINGS:
2018-08-01 17:13:55 Activity alive
2018-08-01 17:13:55 battery ok
2018-08-01 17:14:04 hmstate Initialized
2018-08-01 16:53:11 state Initialized
hmccu:
dp:
0.CONFIG_PENDING:
OVAL 0
VAL 0
0.DUTY_CYCLE:
OVAL 0
VAL 0
0.INSTALL_TEST:
OVAL true
VAL true
0.LOW_BAT:
OSVAL ok
OVAL 0
SVAL ok
VAL 0
0.OPERATING_VOLTAGE:
OVAL 3.0
VAL 3.0
0.OPERATING_VOLTAGE_STATUS:
OVAL 0
VAL 0
0.RSSI_DEVICE:
OVAL -70
VAL -69
0.RSSI_PEER:
OVAL 0
VAL 0
0.UNREACH:
OSVAL alive
OVAL 0
SVAL alive
VAL 0
0.UPDATE_PENDING:
OVAL false
VAL false
1.AVERAGE_ILLUMINATION:
OVAL 1644.000000
VAL 1590.1
1.AVERAGE_ILLUMINATION_STATUS:
OVAL 0
VAL 0
1.CURRENT_ILLUMINATION:
OVAL 1587.8
VAL 1509.7
1.CURRENT_ILLUMINATION_STATUS:
OVAL 0
VAL 0
1.HIGHEST_ILLUMINATION:
OVAL 1681.0
VAL 1658.0
1.HIGHEST_ILLUMINATION_STATUS:
OVAL 0
VAL 0
1.LOWEST_ILLUMINATION:
OVAL 1587.8
VAL 1509.7
1.LOWEST_ILLUMINATION_STATUS:
OVAL 0
VAL 0
Attributes:
IODev CCU2
ccureadingfilter (ERROR|LOWBAT|STATE)
ccuverify 2
room Aussen,Haus,Wetterstation
List geändert (sorry war das List vom Sender )
über einen kleinen Stubs in die richtige Richtung würde ich mich freuen
vg tagedieb
Führe mal ein "get deviceinfo" aus.
Hallo,
ich habe hier einen homematic-raspi mit HmIP Devices im Einsatz!
CCU:
define ccu HMCCU 192.168.xxx.xxx waitforccu=180
attr ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)\$
attr ccu ccudef-readingformat datapoint
attr 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 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 ccu ccuflags extrpc
attr ccu event-on-change-reading .*
attr ccu event-on-update-reading .*
attr ccu room Buero
attr ccu rpcinterfaces BidCos-RF,HmIP-RF,VirtualDevices
attr ccu rpcport 2001,2010,9292
attr ccu rpcserver on
attr ccu stateFormat rpcstate/state
und z.B:
define HM_HmIP_STH_xxxxxxxxxxxxxx HMCCUDEV xxxxxxxxxxxxxx
attr HM_HmIP_STH_xxxxxxxxxxxxxx IODev ccu
attr HM_HmIP_STH_xxxxxxxxxxxxxx alias Klima_Buero
attr HM_HmIP_STH_xxxxxxxxxxxxxx ccureadingfilter ^ACTUAL_TEMPERATURE|^BOOST_MODE|^SET_POINT_MODE|^SET_POINT_TEMPERATURE|^LEVEL|^WINDOW_STATE|^HUMIDITY|^LOW_BAT
attr HM_HmIP_STH_xxxxxxxxxxxxxx ccureadingname 1.LEVEL:valve_position
attr HM_HmIP_STH_xxxxxxxxxxxxxx ccuscaleval LEVEL:0:1:0:100
attr HM_HmIP_STH_xxxxxxxxxxxxxx controldatapoint 1.SET_POINT_TEMPERATURE
attr HM_HmIP_STH_xxxxxxxxxxxxxx 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_HmIP_STH_xxxxxxxxxxxxxx room Buero
attr HM_HmIP_STH_xxxxxxxxxxxxxx stateFormat 1.ACTUAL_TEMPERATURE° / 1.HUMIDITY%
attr HM_HmIP_STH_xxxxxxxxxxxxxx statedatapoint 1.ACTUAL_TEMPERATURE
attr HM_HmIP_STH_xxxxxxxxxxxxxx stripnumber 1
attr HM_HmIP_STH_xxxxxxxxxxxxxx substexcl control
attr HM_HmIP_STH_xxxxxxxxxxxxxx substitute SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;;WINDOW_STATE!(0|false):zu,(1|true):auf
attr HM_HmIP_STH_xxxxxxxxxxxxxx webCmd control:Boost:Auto:Manual:Holiday:on:off
attr HM_HmIP_STH_xxxxxxxxxxxxxx widgetOverride control:slider,4.5,0.5,30.5,1
Auf dem homematic-raspi habe ich Gruppen kombiniert z.B Gruppe Buero mit HmIP-eTRV-2, HmIP-SWDO und HmIP-STH.
Wie bekomme ich die in FHEM
Ich habe es mit
define HM_Buero_INT0000001 HMCCUDEV Buero_INT0000001 group=HMIP_SWDO_0000D7099A4520,HmIP_STH_000E570999A7C4,HmIP_eTRV_2_000A1569A15B86 [defaults] [readonly]
versucht, da kommt 'Cannot detect IO device'
und mit
define HM_Buero_INT0000001 HMCCUDEV Buero_INT0000001 group=HMIP_SWDO_0000D7099A4520,HmIP_STH_000E570999A7C4,HmIP_eTRV_2_000A1569A15B86 [defaults] [readonly] iodev=ccu
da kommt 'Invalid or unknown CCU device name or address: Buero_INT0000001'
Kann mir jemand dabei helfen?
Danke
Gruß
Johann
Funktioniert ein
get ccu deviceinfo Buero_INT0000001
Und wie sieht die Ausgabe aus?
Die Geräte HMIP_SWDO_0000D7099A4520, HmIP_STH_000E570999A7C4, HmIP_eTRV_2_000A1569A15B86 sind auch alle in der CCU bekannt? => Prüfen mit
get ccu deviceinfo Name
(die Ausgabe musst Du hier nicht posten)
Hast Du FHEM mal neu gestartet, nachdem Du die Gruppe in der CCU angelegt hast? Falls nicht, mach ein
get ccu devicelist
um die bekannten Geräte in FHEM zu aktualisieren.
Noch 2 Hinweise:
- In define ccu musst Du Dich für event-on-change-reading oder event-on-update-reading entscheiden. Eines von beiden hat Prio, das andere wird ignoriert (s.a. FHEM Doku)
- Beim define des Gruppen-Device sind die eckigen Klammern bei "defaults" und "readonly" nur Hinweise in der Doku, dass diese Parameter optional sind. Daher die eckigen Klammern weglassen.
Hallo zap,
Danke, das war der Tritt in die richtige Richtung!
Mit dem
get ccu deviceinfo Name
habe ich herausgefunden, das er die Geräte nur über die Nummer anspricht also nicht Buero_INT0000001 sondern INT0000001
und mit den anderen Devices verhält es sich ebenso!
get ccu deviceinfo INT0000001
CHN INT0000001:0 Buero INT0000001:0
DPT {i} VirtualDevices.INT0000001:0.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} VirtualDevices.INT0000001:0.CONFIG_PENDING = false [RE]
DPT {b} VirtualDevices.INT0000001:0.DUTY_CYCLE = false [RE]
DPT {n} VirtualDevices.INT0000001:0.ERROR_CODE = 0 [RE]
DPT {b} VirtualDevices.INT0000001:0.ERROR_OVERHEAT = false [RE]
DPT {b} VirtualDevices.INT0000001:0.INSTALL_TEST = false [RW]
DPT {b} VirtualDevices.INT0000001:0.LOW_BAT = false [RE]
DPT {i} VirtualDevices.INT0000001:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {b} VirtualDevices.INT0000001:0.SABOTAGE = false [RE]
DPT {b} VirtualDevices.INT0000001:0.UNREACH = false [RE]
DPT {b} VirtualDevices.INT0000001:0.UPDATE_PENDING = false [RE]
CHN INT0000001:1 Buero INT0000001:1
DPT {i} VirtualDevices.INT0000001:1.ACTIVE_PROFILE = 1 [RWE]
DPT {f} VirtualDevices.INT0000001:1.ACTUAL_TEMPERATURE = 26.900000 [RE]
DPT {i} VirtualDevices.INT0000001:1.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} VirtualDevices.INT0000001:1.BOOST_MODE = false [WE]
DPT {i} VirtualDevices.INT0000001:1.BOOST_TIME = 0 [RE]
DPT {f} VirtualDevices.INT0000001:1.CONTROL_DIFFERENTIAL_TEMPERATURE = [W]
DPT {i} VirtualDevices.INT0000001:1.CONTROL_MODE = [W]
DPT {i} VirtualDevices.INT0000001:1.DURATION_UNIT = [W]
DPT {i} VirtualDevices.INT0000001:1.DURATION_VALUE = [W]
DPT {b} VirtualDevices.INT0000001:1.FROST_PROTECTION = false [RE]
DPT {i} VirtualDevices.INT0000001:1.HEATING_COOLING = 0 [RWE]
DPT {i} VirtualDevices.INT0000001:1.HUMIDITY = 61 [RE]
DPT {i} VirtualDevices.INT0000001:1.HUMIDITY_STATUS = 0 [RE]
DPT {f} VirtualDevices.INT0000001:1.LEVEL = 0.000000 [RWE]
DPT {i} VirtualDevices.INT0000001:1.LEVEL_STATUS = 0 [RE]
DPT {b} VirtualDevices.INT0000001:1.PARTY_MODE = false [RE]
DPT {f} VirtualDevices.INT0000001:1.PARTY_SET_POINT_TEMPERATURE = 4.500000 [RE]
DPT {s} VirtualDevices.INT0000001:1.PARTY_TIME_END = 2000_01_01 00:00 [RWE]
DPT {s} VirtualDevices.INT0000001:1.PARTY_TIME_START = 2000_01_01 00:00 [RWE]
DPT {i} VirtualDevices.INT0000001:1.QUICK_VETO_TIME = 0 [RE]
DPT {i} VirtualDevices.INT0000001:1.SET_POINT_MODE = 0 [RWE]
DPT {f} VirtualDevices.INT0000001:1.SET_POINT_TEMPERATURE = 19.000000 [RWE]
DPT {b} VirtualDevices.INT0000001:1.SWITCH_POINT_OCCURED = false [RE]
DPT {b} VirtualDevices.INT0000001:1.VALVE_ADAPTION = false [RWE]
DPT {i} VirtualDevices.INT0000001:1.VALVE_STATE = 4 [RE]
DPT {i} VirtualDevices.INT0000001:1.WINDOW_STATE = 0 [RWE]
CHN INT0000001:3 Buero INT0000001:3
DPT {i} VirtualDevices.INT0000001:3.STATE = 0 [RE]
CHN INT0000001:4 Buero INT0000001:4
DPT {i} VirtualDevices.INT0000001:4.PROCESS = 0 [RE]
DPT {i} VirtualDevices.INT0000001:4.SECTION = 0 [RE]
DPT {i} VirtualDevices.INT0000001:4.SECTION_STATUS = 0 [RE]
DPT {b} VirtualDevices.INT0000001:4.STATE = false [RE]
daraus hat sich jetzt ein
define HM_Buero_INT0000001 HMCCUDEV INT0000001 group=0000D7099A4520,000E570999A7C4,000A1569A15B86
ergeben!
Gruß
Johann
Sowohl Name als auch Adresse müssten eigentlich funktionieren.
Möglicherweise liegt es am Unterstrich im Namen. Das Gerät heißt in der CCU wirklich "Buero_INT0000001" ?
Falls es "Buero INT0000001" heißt, musst Du es so verwenden:
get ccu deviceinfo "Buero INT0000001"
oder
define HM_Buero_INT0000001 HMCCUDEV "Buero INT0000001" group=0000D7099A4520,000E570999A7C4,000A1569A15B86
Also: Wenn ein Name Leerzeichen enthält, doppelte Hochkomma verwenden. Oder eben mit der Adresse, wie du es jetzt gemacht hast.
Gab es nicht eine Einschränkung die Namen bei allen Kanälen gleich zu setzen? Ich setzen die Namen in der CCU immer nur auf dem Hauptdevice (und damit bei Kanal 0), nie auf den weiteren Kanälen....
Hallo,
anbei meine Konfig für den neuen HmIP-SLO:
ccureadingfilter (^LOW_BAT|^CURRENT_ILLUMINATION$|^AVERAGE_ILLUMINATION$|^HIGHEST_ILLUMINATION$|^LOWEST_ILLUMINATION$)
ccureadingformat datapoint
ccureadingname 0.(LOWBAT|LOW_BAT):+battery;1.CURRENT_ILLUMINATION:+luminosity
event-on-change-reading.*
genericDeviceType thermometer
homebridgeMapping CurrentBrightness=luminosity,minValue=1,maxValue=83860
icon weather_light_meter
stateFormat Helligkeit: 1.CURRENT_ILLUMINATION lx
statedatapoint 1.CURRENT_ILLUMINATION
stripnumber -0
substitute 0.LOW_BAT!(0|false):ok,(1|true):low
Bei Verbesserungen gerne melden!
Viele Grüße
Christian
Jeder Name in der CCU muss eindeutig sein. Allerdings spricht nichts dagegen, das Gerät und alle seine Kanäle unterschiedlich zu benennen. Ich verwende folgendes Namensschema:
Gerät = abc
Kanal 1 = abc:1
Kanal 2 = abc:2
usw.
Ich benutze keine Leerzeichen in den Geräte- und Kanalnamen. Das macht einige Dinge einfacher. Grundsätzlich sind aber Leerzeichen zulässig.
Die Config für den hmip-slo übernehme ich in die Defaults.
Hallo zusammen,
ich verzweifel gerade an der Anbindung der Devices HmIP-BROLL und HmIP-BDT über das Modul HMCCU.
HmIP-BROLL habe ich jetzt über die hier im Forum vorgeschlagenen Werte versucht einzurichten - auch über Level 5 und 6 - aber ich bekomme leider immer die Meldung "unknown datapoint"
Gibt es irgendwo vielleicht schon eine laufende Vorlage?
device:HmIP-BROLL
_description=Dimm-Aktor
ccureadingfilter=LEVEL
ccureadingname=4.LEVEL:+pct
ccuscaleval=LEVEL:0:1:0:100
cmdIcon=up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint=4.LEVEL
event-on-change-reading=.*
eventMap=/datapoint 4.STOP 1:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/
genericDeviceType=blind
stateFormat={ my $l = ReadingsVal ($name, "4.LEVEL", "na"); sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %"; }
statedatapoint=4.LEVEL
stripnumber=1
substexcl=control|pct
substitute=LEVEL!#0-0:closed,#100-100:open
webCmd=up:down:stop:control
widgetOverride=control:slider,0,10,100
Ein ,,list" vom Device wäre hilfreich.
Hast Du nach dem Anlernen des Aktors an die CCU einmal ein get devicelist ausgeführt oder alternativ FHEM neu gestartet?
Ich hoffe, ich verstehe Dich richtig, aber mit get devicelist habe ich den Aktor ins FHEM gebracht.
Also er wurde erfolgreich erstellt, aber nur mit zwei Attributen.
Danach habe ich die Default-Konfig lokal gespeichert und mit den vorher angegebenen Parametern erweitert und die Defaults für diesen Aktor neu geladen.
Die sind soweit auch alle angelegt - auch die Web-Schalter sehe ich. Aber bei Betätigung erhalte ich die Meldung "unknown datapoint"
Level 5 und 6 habe ich alternativ auch versucht.
Folgendes erhalte ich bei deviceinfo:
CHN 00111709A69949:0 testrollo:0
DPT {f} HmIP-RF.00111709A69949:0.ACTUAL_TEMPERATURE = 25.000000 [RE]
DPT {i} HmIP-RF.00111709A69949:0.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.00111709A69949:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.00111709A69949:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.00111709A69949:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.00111709A69949:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.00111709A69949:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.00111709A69949:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.00111709A69949:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.00111709A69949:0.RSSI_DEVICE = 186 [RE]
DPT {n} HmIP-RF.00111709A69949:0.RSSI_PEER = 188 [RE]
DPT {b} HmIP-RF.00111709A69949:0.UNREACH = false [RE]
DPT {b} HmIP-RF.00111709A69949:0.UPDATE_PENDING = false [RE]
CHN 00111709A69949:1 HmIP-BROLL 00111709A69949:1
DPT {b} HmIP-RF.00111709A69949:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.00111709A69949:1.PRESS_SHORT = [E]
CHN 00111709A69949:2 HmIP-BROLL 00111709A69949:2
DPT {b} HmIP-RF.00111709A69949:2.PRESS_LONG = [E]
DPT {b} HmIP-RF.00111709A69949:2.PRESS_SHORT = [E]
CHN 00111709A69949:3 HmIP-BROLL 00111709A69949:3
DPT {i} HmIP-RF.00111709A69949:3.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.00111709A69949:3.LEVEL = 0.175000 [RE]
DPT {i} HmIP-RF.00111709A69949:3.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:3.SECTION = 15 [RE]
DPT {i} HmIP-RF.00111709A69949:3.SECTION_STATUS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:3.SELF_CALIBRATION = [W]
DPT {b} HmIP-RF.00111709A69949:3.SELF_CALIBRATION_RESULT = false [RE]
CHN 00111709A69949:4 HmIP-BROLL 00111709A69949:4
DPT {i} HmIP-RF.00111709A69949:4.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.00111709A69949:4.LEVEL = 1.000000 [RWE]
DPT {i} HmIP-RF.00111709A69949:4.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:4.SECTION = 4 [RE]
DPT {i} HmIP-RF.00111709A69949:4.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00111709A69949:4.STOP = [W]
CHN 00111709A69949:5 HmIP-BROLL 00111709A69949:5
DPT {i} HmIP-RF.00111709A69949:5.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.00111709A69949:5.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.00111709A69949:5.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:5.SECTION = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:5.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00111709A69949:5.STOP = [W]
CHN 00111709A69949:6 HmIP-BROLL 00111709A69949:6
DPT {i} HmIP-RF.00111709A69949:6.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.00111709A69949:6.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.00111709A69949:6.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:6.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:6.SECTION = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:6.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00111709A69949:6.STOP = [W]
CHN 00111709A69949:7 HmIP-BROLL 00111709A69949:7
DPT {i} HmIP-RF.00111709A69949:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.00111709A69949:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
DPT {i} HmIP-RF.00111709A69949:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = [W]
Die Aktoren HmIP-BSM werden erkannt und können dann auch direkt aus FHEM angesteuert werden.
Grundsätzlich funktioniert meine Kommunikation zur CCU2.
Nachtrag:
Ich hab jetzt alle Devices in FHEM nochmal gelöscht, weil ich weitere innerhalb der CCU2 angelernt habe, und dann nochmal alle in FHEM neu erstellen lassen.
Jetzt kann ich die Rollos plötzlich ansteuern. Der Schieber funktioniert aber nicht. Es geht nur 0% oder 100% oder Stop.
--> Aktoren mussten erst noch kalibriert werden. Das geht jetzt auch.
Gibt es denn noch keine Default-Attribute für HM-Geräte mit den Level-Parametern?
Auch Wandthermostate und Dimmer haben wohl noch keine Templates?!
gib mal bitte in der FHEM Kommandozeile folgenden Befehl ein:
list name
name ersetzt Du bitte durch den Namen des Rollladens in FHEM. Die Ausgabe würde ich gerne sehen.
Hat sich erledigt, ich konnte alle HmIP-Geräte nun erfolgreich in FHEM integrieren.
Hier zusammengefasst meine Codes, vielleicht könnte man die ja als Default einchecken?
HmIP-BROLL:
device:HmIP-BROLL
_description=Schalt-Mess-Aktor
ccureadingfilter=LEVEL
ccureadingname=4.LEVEL:+pct
ccuscaleval=LEVEL:0:1:0:100
cmdIcon=up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down
controldatapoint=4.LEVEL
event-on-change-reading=.*
eventMap=/datapoint 4.STOP 1:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/
genericDeviceType=blind
stateFormat={ my $l = ReadingsVal ($name, "4.LEVEL", "na"); sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %"; }
statedatapoint=4.LEVEL
stripnumber=1
substexcl=control|pct
substitute=LEVEL!#0-0:closed,#100-100:open
webCmd=up:down:stop:control
widgetOverride=control:slider,0,10,100
HmIP-BDT:
device:HmIP-BDT
_description=Dimm-Aktor
ccureadingfilter=^LEVEL$
ccuscaleval=LEVEL:0:1:0:100
controldatapoint=4.LEVEL
statedatapoint=4.LEVEL
statevals=on:100,off:0
stripnumber=1
substexcl=control
substitute=LEVEL!#0-0:off,#1-100:on
webCmd=control:on:off
widgetOverride=control:slider,0,10,100
HmIP-BWTH:
device:HmIP-BWTH
_description=Wandthermostat mit Schaltausgang HM-IP
ccureadingfilter=.*
ccureadingname=1.SET_POINT_TEMPERATURE:desired-temp;1.ACTUAL_TEMPERATURE:measured-temp
ccuscaleval=LEVEL:0:1:0:100
controldatapoint=1.SET_POINT_TEMPERATURE
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_MODE 0:off/datapoint 1.SET_POINT_TEMPERATURE 30.5:on/datapoint 1.HEATING_COOLING 0:Heating/datapoint 1.HEATING_COOLING 1:Cooling/
genericDeviceType=thermostat
statedatapoint=1.SET_POINT_TEMPERATURE
stripnumber=1
substexcl=control
homebridgeMapping=TargetTemperature=1.SET_POINT_TEMPERATURE::1.SET_POINT_TEMPERATURE,,minValue=19,maxValue=30,minStep=0.5,cmd=control,nocache=true
CurrentTemperature=1.ACTUAL_TEMPERATURE
CurrentHeatingCoolingState=1.SET_POINT_MODE,values=1:0;0:1 TargetHeatingCoolingState=1.SET_POINT_MODE::1.SET_POINT_MODE,values=OFF:1;AUTO:0;HEAT:1;COOL:2,cmds=OFF:datapoint+1.CONTROL_MODE+1;HEAT:datapoint+1.BOOST_MODE+1;COOL:datapoint+1.BOOST_MODE+0;AUTO:datapoint+1.CONTROL_MODE+0
CurrentRelativeHumidity=1.HUMIDITY
webCmd=control:Auto:Manual:on:off
widgetOverride=control:slider,4.5,0.5,30.5,1
Übernehme ich gerne in die Defaults.
Hallo zusammen,
hätte hier ein Vorschlag frür die defaults für einen HM-Sen-Wa-Od
"HM-Sen-Wa-Od" => {
_description => "kapazitiver Funk-Fuellstandsmesser",
_channels => "1",
ccureadingfilter => "FILLING_LEVEL",
stateFormat => "Füllstand: 1.FILLING_LEVEL%",
},
Grüße
Bin mir gerade nicht sicher ob das hier her gehört. Ich habe aber auch keine andere Idee wo ich es sonst "melden" könnte.
Seit gestern bleibt mein fhem bein shutdown immer mit dem Fehler
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE extrpc|procrpc/ at ./FHEM/88_HMCCU.pm line 5107
stehen.
Weiter geht es nur mit einem harten kill der fhem-prozesse.
Hat das noch einer oder nur ich ?
Zitat von: tatu123 am 13 September 2018, 16:32:03
Bin mir gerade nicht sicher ob das hier her gehört. Ich habe aber auch keine andere Idee wo ich es sonst "melden" könnte.
Seit gestern bleibt mein fhem bein shutdown immer mit dem Fehler
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE extrpc|procrpc/ at ./FHEM/88_HMCCU.pm line 5107
stehen.
Weiter geht es nur mit einem harten kill der fhem-prozesse.
Hat das noch einer oder nur ich ?
Das gleiche Problem bei mir.
Details im hmccu 4.3 Post.
Dort steht auch die Lösung.
Hallo zusammen,
ich hätte da mal wieder ein Problem mit meinen HmIP FROLL.
Hier die def
defmod d_roll_o HMCCUDEV HmIP-FROLL-o
attr d_roll_o IODev d_ccu
attr d_roll_o ccureadingfilter (LEVEL|PROCESS|SECTION|PRESS)
attr d_roll_o ccureadingname 4\.LEVEL:+pct
attr d_roll_o ccuscaleval LEVEL:0:1:0:100
attr d_roll_o cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down sonne:fts_shutter_70 nacht:fts_shutter_80
attr d_roll_o controldatapoint 4.LEVEL
attr d_roll_o event-on-change-reading PRESS.*
attr d_roll_o event-on-update-reading .*
attr d_roll_o eventMap /datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/datapoint 4.LEVEL 35:sonne/datapoint 4.LEVEL 10:nacht/
attr d_roll_o room all,o
attr d_roll_o stateFormat { my $l = ReadingsVal ($name, "3.LEVEL", "na");;;; sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %";;;; }
attr d_roll_o statedatapoint 3.LEVEL
attr d_roll_o stripnumber 1
attr d_roll_o substexcl control|pct
attr d_roll_o verbose 5
attr d_roll_o webCmd control:up:stop:down:sonne:nacht
attr d_roll_o widgetOverride control:slider,0,10,100
und die Deviceinfo des HmIP-FROLL
HN 001158A98B293D:0 HmIP-FROLL-o:0
DPT {f} HmIP-RF.001158A98B293D:0.ACTUAL_TEMPERATURE = 25.000000 [RE]
DPT {i} HmIP-RF.001158A98B293D:0.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.001158A98B293D:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.001158A98B293D:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.001158A98B293D:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.001158A98B293D:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.001158A98B293D:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.001158A98B293D:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.001158A98B293D:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.001158A98B293D:0.RSSI_DEVICE = 203 [RE]
DPT {n} HmIP-RF.001158A98B293D:0.RSSI_PEER = 196 [RE]
DPT {b} HmIP-RF.001158A98B293D:0.UNREACH = false [RE]
DPT {b} HmIP-RF.001158A98B293D:0.UPDATE_PENDING = false [RE]
CHN 001158A98B293D:1 HmIP-FROLL 001158A98B293D:1
DPT {b} HmIP-RF.001158A98B293D:1.PRESS_LONG = false [E]
DPT {b} HmIP-RF.001158A98B293D:1.PRESS_SHORT = false [E]
CHN 001158A98B293D:2 HmIP-FROLL 001158A98B293D:2
DPT {b} HmIP-RF.001158A98B293D:2.PRESS_LONG = false [E]
DPT {b} HmIP-RF.001158A98B293D:2.PRESS_SHORT = false [E]
CHN 001158A98B293D:3 HmIP-FROLL 001158A98B293D:3
DPT {i} HmIP-RF.001158A98B293D:3.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.001158A98B293D:3.LEVEL = 1.000000 [RE]
DPT {i} HmIP-RF.001158A98B293D:3.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:3.SECTION = 15 [RE]
DPT {i} HmIP-RF.001158A98B293D:3.SECTION_STATUS = 0 [RE]
CHN 001158A98B293D:4 HmIP-FROLL 001158A98B293D:4
DPT {i} HmIP-RF.001158A98B293D:4.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.001158A98B293D:4.LEVEL = 1.000000 [RWE]
DPT {i} HmIP-RF.001158A98B293D:4.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:4.SECTION = 4 [RE]
DPT {i} HmIP-RF.001158A98B293D:4.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.001158A98B293D:4.STOP = false [W]
CHN 001158A98B293D:5 HmIP-FROLL 001158A98B293D:5
DPT {i} HmIP-RF.001158A98B293D:5.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.001158A98B293D:5.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.001158A98B293D:5.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:5.SECTION = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:5.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.001158A98B293D:5.STOP = false [W]
CHN 001158A98B293D:6 HmIP-FROLL 001158A98B293D:6
DPT {i} HmIP-RF.001158A98B293D:6.ACTIVITY_STATE = 3 [RE]
DPT {f} HmIP-RF.001158A98B293D:6.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.001158A98B293D:6.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:6.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:6.SECTION = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:6.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.001158A98B293D:6.STOP = false [W]
CHN 001158A98B293D:7 HmIP-FROLL 001158A98B293D:7
DPT {i} HmIP-RF.001158A98B293D:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.001158A98B293D:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = 0 [W]
DPT {i} HmIP-RF.001158A98B293D:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = 0 [W]
Ich versuch diese gerade mit den Modulen ROLLO und AutoShutterControl zu automatisieren. Dabei ist mir aufgefallen das bei Homatic als
Standart pct zum Steuern benutzt wird. Also nichts wie ran und pct wie oben mit "ccureadingname=4.LEVEL:+pct" definiert.
und was kommt? Mein Problem bei set d_roll_o pct 20 kommt der Fehler
HMCCUDEV: d_roll_o Can't find LEVEL datapoint for device type HmIP-FROLL
Das brachte mich dazu festzustellen das im ccu-Dev pct schon definiert wird. Also kurzerhand die def gelöscht. Der Fehler bleibt unverändert.
Jetzt habe ich es dann noch mit dem Maskierten des "." in meine def versucht alles ohne Erfolg.
Und jetzt bin ich am Ende.
Hat jemand noch nützliche weitere Ideen ?
Viele Grüße
Auf die Schnelle fällt mir nur auf, dass du für statedatapoint einen anderen Datenpunkt verwendest wie für controldatapoint. Dafür gibt es eigentlich keinen Grund. Wenn also 4.LEVEL automatisch aktualisiert wird, setze statedatapoint auf diesen Datenpunkt.
Update: statedatapoint muss(!) 4.LEVEL sein, da 3.LEVEL read only ist (Flags RE = Read/Event). Ersetze also in allen Attributen 3.LEVEL durch 4.LEVEL.
Oder du wartest bis morgen, das kommende Update verwendet in diesem Fall den controldatapoint. Dann funktioniert deine Config.
Hallo zap,
vielen Dank mit der neuen Version funktioniert jetzt die Steuerung über pct. Vielen Dank für die schnelle Lösung.
Im statedatapoint habe ich mit Absicht 3.LEVEL benutzt. Nur in dem Reading steht der aktuelle Wert der Position des Rollos drin und
das egal von welche Quelle die Steuerung erfolgte. In 4.LEVEL steht nur eine Position drin welche durch die Steuerung über 4.LEVEL erfolgte.
bei 5. und 6.LEVEL ist es auch so.
Bis jetzt macht die Einstellung was sie soll.
Muss ich das aus irgend einem Grund zwingend ändern? Ich würde es lieber so lassen.
Viel Grüße
Nein, kannst du so lassen. Solltst du jedoch mal controldatapoint löschen, wird statedatapoint alleine nicht mehr funktionieren, zumindest nicht mit set Befehlen, da 3.LEVEL read only ist.
Der Homematic Wandtaster HM-PB-6-WM55 (6Tasten),
und die Fernbedienung HM-RC-8 (8Tasten),
funktioniert wie gelesen mit dieser Konfiguration, die Events kommen an (bei mir auch ohne anlegen eines CCU3 Dummy Programmes)
ccureadingfilter PRESS
substitute PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed,(0|false):released;PRESS_LONG_RELEASE!(0|false):no,(1|true):yes
event-on-update-reading .*
Ich benötige nun noch für einen "HM-ES-PMSw1-Pl" Zwischenstecker das Reading "TIMED_ON".
Irgendwo bin ich im WIKI darüber gestolpert finde nun aber zum ver.... den Link trotz Suche nicht mehr, grrrr ::)
Mach ein get deviceinfo. Dann siehst du alle Datenpunkte und kannst den Readingfilter entsprechend setzen. Außerdem gibt es eine Doku von EQ3, in der alle Geräte mit ihren. datenpunkten beschrieben sind.
get deviceinfo von "HM-ES-PMSw1-Pl":
CHN LEQ0471700:0 HM-sd-ku-led:0
DPT {b} BidCos-RF.LEQ0471700:0.UNREACH = false [RE]
DPT {b} BidCos-RF.LEQ0471700:0.STICKY_UNREACH = false [RWE]
DPT {b} BidCos-RF.LEQ0471700:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.LEQ0471700:0.DUTYCYCLE = false [RE]
DPT {n} BidCos-RF.LEQ0471700:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.LEQ0471700:0.RSSI_PEER = 178 [RE]
DPT {b} BidCos-RF.LEQ0471700:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.LEQ0471700:0.UPDATE_PENDING = false [RE]
DPT {n} BidCos-RF.LEQ0471700:0.AES_KEY = 1 [R]
CHN LEQ0471700:1 HM-ES-PMSw1-Pl LEQ0471700:1
DPT {b} BidCos-RF.LEQ0471700:1.STATE = false [RWE]
DPT {f} BidCos-RF.LEQ0471700:1.ON_TIME = [W]
DPT {b} BidCos-RF.LEQ0471700:1.INHIBIT = false [RWE]
DPT {b} BidCos-RF.LEQ0471700:1.INSTALL_TEST = [W]
DPT {b} BidCos-RF.LEQ0471700:1.WORKING = false [RE]
CHN LEQ0471700:2 HM-ES-PMSw1-Pl LEQ0471700:2
DPT {f} BidCos-RF.LEQ0471700:2.ENERGY_COUNTER = 74.200000 [RE]
DPT {f} BidCos-RF.LEQ0471700:2.POWER = 0.000000 [RE]
DPT {f} BidCos-RF.LEQ0471700:2.CURRENT = 0.000000 [RE]
DPT {f} BidCos-RF.LEQ0471700:2.VOLTAGE = 229.600000 [RE]
DPT {f} BidCos-RF.LEQ0471700:2.FREQUENCY = 50.030000 [RE]
DPT {b} BidCos-RF.LEQ0471700:2.BOOT = true [RE]
CHN LEQ0471700:3 HM-ES-PMSw1-Pl LEQ0471700:3
DPT {i} BidCos-RF.LEQ0471700:3.DECISION_VALUE = 0 [RE]
CHN LEQ0471700:4 HM-ES-PMSw1-Pl LEQ0471700:4
DPT {i} BidCos-RF.LEQ0471700:4.DECISION_VALUE = 0 [RE]
CHN LEQ0471700:5 HM-ES-PMSw1-Pl LEQ0471700:5
DPT {i} BidCos-RF.LEQ0471700:5.DECISION_VALUE = 0 [RE]
CHN LEQ0471700:6 HM-ES-PMSw1-Pl LEQ0471700:6
DPT {i} BidCos-RF.LEQ0471700:6.DECISION_VALUE = 0 [RE]
(ich habe ccureadingfilter um |ON_TIME) erweitert.
defmod HM_sd_ku_led HMCCUDEV LEQ0471700
attr HM_sd_ku_led userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr HM_sd_ku_led IODev ccu31
attr HM_sd_ku_led alias Küche LED
attr HM_sd_ku_led ccureadingfilter (STATE|CURRENT|ENERGY_COUNTER|POWER|ON_TIME)
attr HM_sd_ku_led controldatapoint 1.STATE
attr HM_sd_ku_led devStateIcon on:light_led_stripe9@#aa6900 off:light_led_stripe9
attr HM_sd_ku_led event-on-update-reading .*
attr HM_sd_ku_led fp_tabl1 169,298,0,LED Küche
attr HM_sd_ku_led group LED,Licht
attr HM_sd_ku_led room Homematic,Küche
attr HM_sd_ku_led statedatapoint 1.STATE
attr HM_sd_ku_led statevals on:1,off:0
attr HM_sd_ku_led stripnumber 1
attr HM_sd_ku_led substitute STATE!(1|true):on,(0|false):off
attr HM_sd_ku_led verbose 3
attr HM_sd_ku_led webCmd control
attr HM_sd_ku_led widgetOverride control:uzsuToggle,off,on
setstate HM_sd_ku_led on
setstate HM_sd_ku_led 2018-09-19 00:46:52 1.STATE on
setstate HM_sd_ku_led 2018-09-19 00:49:40 2.CURRENT 18.0
setstate HM_sd_ku_led 2018-09-19 00:49:40 2.ENERGY_COUNTER 74.1
setstate HM_sd_ku_led 2018-09-19 00:49:40 2.POWER 1.6
setstate HM_sd_ku_led 2018-09-19 00:40:55 R-CONF_BUTTON_TIME 1
setstate HM_sd_ku_led 2018-09-19 00:40:55 R-INTERNAL_KEYS_VISIBLE 1
setstate HM_sd_ku_led 2018-09-19 00:40:55 R-LOCAL_RESET_DISABLE 0
setstate HM_sd_ku_led 2018-09-19 00:23:35 activity alive
setstate HM_sd_ku_led 2018-09-19 00:46:52 control on
setstate HM_sd_ku_led 2018-09-19 00:49:40 hmstate on
setstate HM_sd_ku_led 2018-09-19 00:46:52 state on
Bekomme jedoch kein Reading mit dem ich auswerten könnte ob das Device "mit Timer" > on ist..
Danke für Hilfe
Hier ein Beispiel für eine Geräte-Definition des Bewegungsmelders für innen im 55-er Rahmen, HMIP-SMI55 (Raw). Hatte ich noch nicht gefunden. Vielleicht kann es einer gebrauchen.
defmod HMIP_SMI550 HMCCUDEV xxxxxxxxxxxxxx 1 readonly
attr HMIP_SMI550 IODev CCU3
attr HMIP_SMI550 alias Kueche_Motion
attr HMIP_SMI550 ccureadingfilter (^MOTION|^ILLUMINATION|^LOW_BAT|^PRESS)
attr HMIP_SMI550 ccureadingformat datapoint
attr HMIP_SMI550 ccureadingname 0.(LOWBAT|LOW_BAT):battery;;1.PRESS_LONG:long1;;1.PRESS_SHORT:short1;;2.PRESS_LONG:long2;;2.PRESS_SHORT:short2;;3.ILLUMINATION:brightness;;3.MOTION:motion
attr HMIP_SMI550 event-on-update-reading .*
attr HMIP_SMI550 genericDeviceType OccupancySensor
attr HMIP_SMI550 icon people_sensor
attr HMIP_SMI550 room HomeMaticIP
attr HMIP_SMI550 stateFormat Helligkeit: brightness lx
attr HMIP_SMI550 statechannel 1
attr HMIP_SMI550 substitute 0.LOW_BAT!(0|false):ok,(1|true):low
@Simon74: wichtig sind die Buchstaben in eckigen Klammern hinter jedem Datenpunkt [RWE]. Die stehen für Read, Write, Event. Event: Die CCU aktualisiert diese Datenpunkte automatisch, Read: Diese Datenpunkte können mit get update oder get datapoint gelesen werden. Write: können mit set datapoint beschrieben werden.
ON_TIME ist Write Only, liefert also keinen Wert zurück. Den aktuellen Schaltzustand bekommst Du über STATE.
Im state steht jedoch nur "on" und "off", und kein "on_time" oder sonstiges, damit ich on-for-time erkennen könnte.
Dasselbe Problem habe ich beim Dimmer [HM-LC-Dim1TPBU-FM], 1. LEVEL und state zeigt hier auch nur "on" und "off", und nicht den Dimmlevel.
Jeweils "get defaults" auf den Devices ausgeführt.
Wenn die CCU einen Datenpunkt nur schreibend bereitstellt, kann ich auch nichts machen. Ich übernehme das in HMCCU nur so, wie es geliefert wird. Du kannst ja mal einen Change-Request an EQ-3 stellen, dass sie das ändern.
Zu LEVEL: Zumindest bei meiner dimbaren Steckdose HM-LC-Dim1T-Pl-3 ist LEVEL lesbar und beschreibbar. Das sollte also gehen.
Das on und off könnte hier durch das Attribut substitute verursacht werden. Wenn Du da LEVEL drin hast und zB 0=off und 100=on gesetzt wird, bekommst Du selbstverständlich keine Levels angezeigt. Das ist ja der Sinn von substitute.
Zitat von: inoma am 19 September 2018, 00:55:39
Hier ein Beispiel für eine Geräte-Definition des Bewegungsmelders für innen im 55-er Rahmen, HMIP-SMI55 (Raw). Hatte ich noch nicht gefunden. Vielleicht kann es einer gebrauchen.
Danke für den Hinweis. Folgende Attribute habe ich übernommen:
ccureadingfilter => "(ILLUMINATION|MOTION|PRESS)"
event-on-update-reading => ".*"
eventMap => "/datapoint 3.MOTION_DETECTION_ACTIVE 1:detection-on/datapoint 3.MOTION_DETECTION_ACTIVE 0:detection-off/datapoint 3.RESET_MOTION 1:reset/"
statedatapoint => "3.MOTION",
substitute => "PRESS_LONG,PRESS_SHORT!(1|true):pressed,(0|false):released;MOTION,MOTION_DETECTION_ACTIVE!(0|false):no,(1|true):yes;ILLUMINATION_STATUS!0:normal,1:unknown,2:overflow"
Das benötigte ON_TIME konnte ich stattdessen mit WORKING ersetzen, bei on-for-timer ist dieser Wert true.
Andere Frage zum Wand Schalter HM-LC-Sw1PBU-FM.
attr HM_ws_ku_herdlicht IODev ccu31
attr HM_ws_ku_herdlicht alias Herd KU
attr HM_ws_ku_herdlicht ccureadingfilter STATE
attr HM_ws_ku_herdlicht controldatapoint 1.STATE
attr HM_ws_ku_herdlicht group Licht
attr HM_ws_ku_herdlicht room Homematic,Küche
attr HM_ws_ku_herdlicht statedatapoint 1.STATE
attr HM_ws_ku_herdlicht statevals on:true,off:false
attr HM_ws_ku_herdlicht substitute STATE!(true|1):on,(false|0):off
attr HM_ws_ku_herdlicht webCmd control
attr HM_ws_ku_herdlicht widgetOverride control:uzsuToggle,off,on
setstate HM_ws_ku_herdlicht off
setstate HM_ws_ku_herdlicht 2018-09-22 02:14:38 1.STATE off
setstate HM_ws_ku_herdlicht 2018-09-22 02:14:38 activity alive
setstate HM_ws_ku_herdlicht 2018-09-22 02:14:38 battery ok
setstate HM_ws_ku_herdlicht 2018-09-22 02:14:38 control off
setstate HM_ws_ku_herdlicht 2018-09-22 02:14:38 hmstate off
setstate HM_ws_ku_herdlicht 2018-09-22 02:14:38 state off
Hier ist in den Readings "battery" zu sehen, obwohl keine vorhanden ist, wie kann ich das unterbinden ?
Danke
edit:
Per Readingsgroup kann ich die Wandschalter wegfiltern:
.*:FILTER=ccutype!=HM-LC-Sw1PBU-FM:[Bb]attery
Meine ev. doofen Fragen gehen weiter..
1. Mit den Defaults eines Dimmers (HM-LC-Dim1TPBU-FM) bekomme ich unter im Reading "1.LEVEL" nur on, off ? Sinn und Zweck dieses Wertes sollte doch der aktuelle Dimmlevel sein ?
2. Das Reading "WORKING" wird mM. für jeden Dimmer und Schalter benötigt, so kann zB. festegestellt werden ob das Device per on-for-timer läuft..
3. Für was wird den DIRECTION benötigt ?
edit:
Zummindest Punkt 3 konnte ich heraus finden, beim hoch und runterdimmen..
Antworten ab 1.10. , bin in Urlaub
Zitat von: Simon74 am 22 September 2018, 15:38:01
Meine ev. doofen Fragen gehen weiter..
1. Mit den Defaults eines Dimmers (HM-LC-Dim1TPBU-FM) bekomme ich unter im Reading "1.LEVEL" nur on, off ? Sinn und Zweck dieses Wertes sollte doch der aktuelle Dimmlevel sein ?
Vermutlich ist substitute und/oder ccuscaleval falsch gesetzt. Zeig mal die beiden Attribute.
Zitat
2. Das Reading "WORKING" wird mM. für jeden Dimmer und Schalter benötigt, so kann zB. festegestellt werden ob das Device per on-for-timer läuft..
Ok, nehme ich in die Defaults auf.
Hallo
defmod HM_di_wz HMCCUDEV TRALALA
attr HM_di_wz userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr HM_di_wz IODev ccu31
attr HM_di_wz alias Deckenlicht WZ
attr HM_di_wz ccureadingfilter (^LEVEL$|DIRECTION)
attr HM_di_wz [b]ccuscaleval[/b] LEVEL:0:1:0:100
attr HM_di_wz cmdIcon on:general_an off:general_aus
attr HM_di_wz controldatapoint 1.LEVEL
attr HM_di_wz devStateIcon .*:light_ceiling_light
attr HM_di_wz fp_tabl1 40,455,2,Wohnen
attr HM_di_wz group Licht
attr HM_di_wz hmstatevals ERROR_REDUCED!1:error_reduced;;ERROR_OVERHEAT!1:error_overheat;;ERROR_OVERLOAD!1:error_overload
attr HM_di_wz room Homematic,Wohnzimmer
attr HM_di_wz statedatapoint 1.LEVEL
attr HM_di_wz statevals on:100,off:0
attr HM_di_wz stripnumber 1
attr HM_di_wz substexcl control
attr HM_di_wz [b]substitute[/b] ERROR_OVERHEAT,ERROR_OVERLOAD,ERROR_REDUCED!(0|false):no,(1|true):yes;;LEVEL!#0-0:off,#1-100:on;;DIRECTION!0:none,1:up,2:down,3:undefined
attr HM_di_wz webCmd control
attr HM_di_wz widgetOverride control:0,20,30,40,50,60,80,100
Vielen Dank
Wie vermutet liegt es am substitute. Der Ausdruck
LEVEL!#0-0:off,#1-100:on
bewirkt, dass alle Werte von 1-100 auf on gesetzt werden. Ich verwende das so, da für mich wichtig ist zu sehen, wenn eine Lampe an ist, egal mit welchem Dim-Grad. Der tatsächliche Wert steht ja noch in control drin.
Wenn Du das anders haben möchtest, ersetzte die LEVEL Angabe in substitute:
LEVEL!#0-0:off,#100-100:on
Heisst das im Umkehrschluss das wenn ich das verändere ändert sich auch state ?
on, off wäre im state erwünscht, im level der dimmlevel und working.. (mehr Readings brauchts eigentlich nicht..)
Muss mich damit wohl mal beschäftigen :)
Eine Frage zu WidgetOverride.
So richtig verstanden habe ich das ganze noch nicht ::)
In diesem Beispiel ein HM Zwischenstecker
attr HM_sd_bo_drucker IODev ccu31
attr HM_sd_bo_drucker alias SD Drucker
attr HM_sd_bo_drucker ccureadingfilter (STATE|CURRENT|ENERGY_COUNTER|POWER)
attr HM_sd_bo_drucker controldatapoint 1.STATE
attr HM_sd_bo_drucker devStateIcon on:it_printer@#aa6900 off:it_printer
attr HM_sd_bo_drucker fp_tabl1 300,625,1,Drucker,
attr HM_sd_bo_drucker group Steckdosen
attr HM_sd_bo_drucker room Büro,Geräte->Steckdosen,Homematic
attr HM_sd_bo_drucker statedatapoint 1.STATE
attr HM_sd_bo_drucker statevals on:1,off:0
attr HM_sd_bo_drucker stripnumber 1
attr HM_sd_bo_drucker substitute STATE!(1|true):on,(0|false):off
attr HM_sd_bo_drucker webCmd control
attr HM_sd_bo_drucker widgetOverride control:uzsuToggle,off,on
setstate HM_sd_bo_drucker on
setstate HM_sd_bo_drucker 2018-10-06 10:37:20 1.STATE on
setstate HM_sd_bo_drucker 2018-10-06 10:58:17 2.CURRENT 124.0
setstate HM_sd_bo_drucker 2018-10-06 10:58:17 2.ENERGY_COUNTER 322.6
setstate HM_sd_bo_drucker 2018-10-06 10:58:17 2.POWER 10.3
setstate HM_sd_bo_drucker 2018-10-06 09:59:20 activity alive
setstate HM_sd_bo_drucker 2018-10-06 10:37:20 control on
setstate HM_sd_bo_drucker 2018-10-06 10:58:17 hmstate on
setstate HM_sd_bo_drucker 2018-10-06 10:37:20 state on
Was muss definiert werden wenn man generell im WidgetOverride anstatt on,off -> An,Aus verwenden möchte ?
widgetOverride control:uzsuToggle,Aus,An
Wenn ich eventmap verwende landet das An,Aus im 1.STATE,control was man eigentlich nicht möchte.
Ich habe HmIP-BWTH und leider bekomme ich immer
2019-01-17 06:58:45 HMCCUCHN HM_Thermostat_Bad_1 0.UNREACH: 0
2019-01-17 06:58:45 HMCCUCHN HM_Thermostat_Bad_1 hmstate: Initialized
2019-01-17 06:58:45 HMCCUDEV HM_Thermostat_Bad 0.UNREACH: 0
2019-01-17 06:58:45 HMCCUDEV HM_Thermostat_Bad hmstate: Initialized
2019-01-17 06:58:45 HMCCUCHN HM_Thermostat_Bad_0 0.UNREACH: 0
2019-01-17 06:58:45 HMCCUCHN HM_Thermostat_Bad_0 hmstate: Initialized
2019-01-17 06:58:46 HMCCUCHN HM_Thermostat_Bad_1 hmstate: Initialized
2019-01-17 06:58:46 HMCCUDEV HM_Thermostat_Bad hmstate: Initialized
2019-01-17 06:58:46 HMCCUCHN HM_Thermostat_Bad_0 hmstate: Initialized
2019-01-17 06:58:50 HMCCUCHN HM_Thermostat_Bad_1 0.UNREACH: 0
2019-01-17 06:58:50 HMCCUCHN HM_Thermostat_Bad_1 hmstate: Initialized
2019-01-17 06:58:50 HMCCUDEV HM_Thermostat_Bad 0.UNREACH: 0
2019-01-17 06:58:50 HMCCUDEV HM_Thermostat_Bad hmstate: Initialized
2019-01-17 06:58:50 HMCCUCHN HM_Thermostat_Bad_0 0.UNREACH: 0
2019-01-17 06:58:50 HMCCUCHN HM_Thermostat_Bad_0 hmstate: Initialized
Was mache ich falsch?
das sind die Events oder? wie sieht das list vom Device aus? Gibt es Fehlermeldungen im Logfile?
Hallo zusammen,
ich habe ein Problem mit meinem Thermostat HMIP-BWTH und bin weder im Forum noch auf Google und Co. fündig geworden. Daher meine Bitte um Hilfe.
Für mein Smartvisu möchte ich gerne den Schaltzustand ("Control_Mode" - Auto, Manuell, Boost, Holiday) der Thermostate lesend darstellen. Über Device Info bekomme ich auch dargestellt, dass es die Information grundsätzlich wohl gibt, sie wird mir aber in keinem Reading dargestellt.
DPT {i} HmIP-RF.000C98A9A90000:1.CONTROL_MODE = [W]
Nun habe ich aus dem [W] am Ende geschlossen, dass der Wert wohl von der CCU nicht direkt zum Auslesen zur Verfügung steht. Die Info ist aber wohl grundsätzlich in der CCU vorhanden. Schließlich sagt mit Raspberrymatic ja, dass das Gerät im Manuellen Modus, im Automodus oder im Boostmodus ist.
Ich hoffe die Frage ist nicht allzu doof, aber gibt es irgendeine Möglichkeit den Status aus der CCU per Script oder Ähnlichem in ein Reading zu transferieren?
Herzlichen Dank vorab, Dominik
Nachtrag:
Mit einem Auslesen über ein Homematicscript im Raspberrymatic über nachfolgenden Code bin ich leider ebenso gescheitert:
integer currentstate = (datapoints.Get("HmIP-RF.000C98A9A90000:1.CONTROL_MODE")).Value();
WriteLine(currentstate);
Andere Informationen wie die Temperatur konnte ich jedoch einwandfrei auslesen.
Control_mode ist nur beschreibbar. Die Info, die du suchst, muss daher in einem anderen Datenpunkt stecken, möglicherweise auch in mehreren.
Vielen lieben Dank für den Hinweis - ich habe mir folgendes User-Reading gebastelt mit dem ich den Status ausgebe:
Steuermodus {if(ReadingsVal($name,"1.SET_POINT_MODE","") eq "0" and ReadingsVal ($name,"1.BOOST_MODE","") eq "0") {return "Auto"} elsif (ReadingsVal($name,"1.SET_POINT_MODE","") eq "1" and ReadingsVal ($name,"1.BOOST_MODE","") eq "0") {return "Manuell"} elsif (ReadingsVal($name,"1.SET_POINT_MODE","") eq "0" and ReadingsVal ($name,"1.BOOST_MODE","") eq "1") {return "Boost (Auto)"} elsif (ReadingsVal($name,"1.SET_POINT_MODE","") eq "1" and ReadingsVal ($name,"1.BOOST_MODE","") eq "1") {return "Boost (Manuell)"} else {return "Error"}},
Vielleicht hilft das ja jemandem weiter. Meine Erkenntnisse dabei waren:
Set-Point-Mode-Reading sagt in Zahlen etwas über Auto, Manuell und Holiday aus.
Boost-Mode-Reading sagt ob der Boost-Mode aktiviert ist (das Reading wird erst angelegt, wenn man im Raspberrymatic erstmals den Boost-Mode per Hand aktiviert hat). Nach Anlegen des Userreadings nochmals über get <Device-Name> update die Daten von der CCU ziehen und dann sollte alles da sein.
Viele Grüße,
Dominik
Hallo zusammen,
hat jemand schon die Definitionen vom HM-WDS100-C6-0 (OC3 Wetterstation) zusammen gestellt?
Wenn nicht muss ich mich wohl an die Arbeit machen :-)
Vg
Tim
Hallo zusammen,
ich hätte da mal wieder eine Verständnisfrage.
Ich versuche gerade eine "virtuelle Fernbedienung" der CCU im FHEM anzulegen.
Dies funktioniert auch (meine ich zumindest) mit
defmod d_virt_temp HMCCUCHN name
denn es ist ja nur ein Channel in der ccu. So weit so gut.
In der CCU bekomme ich jedoch für den Channel einen "Schalter" mit "kurzer Tastendruck" und "langer Tastendruck".
In FHEm kann ich jedoch mit set name up "nur" den kurzen Tastendruck erzeugen.
Wie komme ich zum "langen Tastendruck" bzw. was kann ich besser machen.
Vielen Danke
tatu123
So
set d_virt_temp datapoint PRESS_LONG true
Und
set d_virt_temp datapoint PRESS_SHORT true
Der Befehl set up ist nur eine Abkürzung für
set datapoint LEVEL Wert
Um auch die Readings zu bekommen, mindestens folgende Attribute setzen
attr ccureadingfilter PRESS
event-on-update-reading PRESS
Vielen Dank zap. 👍
Hallo,
ich hab mal die Garagentorsteuerung "HmIP-MOD-TM" in die HMCCUDEV.pm eingebaut.
hier die Device Info:
CHN 001E5932FAFD50:0 Garagentor:0
DPT {b} HmIP-RF.001E5932FAFD50:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.001E5932FAFD50:0.DUTY_CYCLE = false [RE]
DPT {b} HmIP-RF.001E5932FAFD50:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.001E5932FAFD50:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.001E5932FAFD50:0.RSSI_DEVICE = 178 [RE]
DPT {n} HmIP-RF.001E5932FAFD50:0.RSSI_PEER = 175 [RE]
DPT {b} HmIP-RF.001E5932FAFD50:0.UNREACH = false [RE]
DPT {b} HmIP-RF.001E5932FAFD50:0.UPDATE_PENDING = false [RE]
CHN 001E5932FAFD50:1 HmIP-MOD-TM 001E5932FAFD50:1
DPT {i} HmIP-RF.001E5932FAFD50:1.DOOR_COMMAND = [W]
DPT {i} HmIP-RF.001E5932FAFD50:1.DOOR_STATE = 0 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:1.ERROR_CODE = 0 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:1.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:1.SECTION = 0 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:1.SECTION_STATUS = 0 [RE]
CHN 001E5932FAFD50:2 HmIP-MOD-TM 001E5932FAFD50:2
DPT {i} HmIP-RF.001E5932FAFD50:2.PROCESS = 0 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:2.SECTION = 0 [RE]
DPT {i} HmIP-RF.001E5932FAFD50:2.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.001E5932FAFD50:2.STATE = false [RWE]
und hier die Ergänzung für die HMCCUDEV.pm:
"HmIP-MOD-TM" => {
_description => "Garagentorantrieb",
ccureadingfilter => "(DOOR_STATE|STATE|PROCESS|SECTION|SECTION_STATUS|RSSI_DEVICE|RSSI_PEER|UNREACH|UPDATE_PENDING|ERROR_CODE)",
devStateIcon => "Ventilation_Position:fts_garage_door_80 Position_Unknown:fts_garage_door_50 Closed:fts_garage_door_100 Open:fts_garage_door_10",
eventMap => "/datapoint 1.DOOR_COMMAND 0:Door_NOP/datapoint 1.DOOR_COMMAND 1:Door_Open/datapoint 1.DOOR_COMMAND 2:Door_Stop/datapoint 1.DOOR_COMMAND 3:Door_Close/datapoint 1.DOOR_COMMAND 4:Door_Ventilation/datapoint 2.STATE (1|true):Light_On/datapoint 2.STATE (0|false):Light_Off",
icon => "fts_garage_door_100",
statedatapoint => "1.DOOR_STATE",
substitute => "DOOR_STATE!0:Closed,1:Open,2:Ventilation_Position,3:Position_Unknown;STATE!(0|false):Light_Off,(1|true):Light_On"
}
Läuft bei mir einwandfrei.
Hallo,
versuche seit zwei Tagen eine Gruppe aus (nicht ip) Heizkörperthermostat und Wandthermostat zu definieren und konfigurieren.
Den Fenstersensor habe ich erst mal weggelassen. Die Definitionen der einzelnen Devices funktionieren, die Gruppen will einfach nicht.
Habe es auch schon mit einer Definition mittels "... HMCCUCHN INT0000003:1" versucht. Da bekomme ich die Readings für SET_TEMPERATURE, ACTUAL_TEMPERATURE u. ACTUAL_HUMIDITY des Wandthermostats, aber nicht den VALVE_STATE des Heizkörperthermostats.
Habe es deshalb mit wieder mit "...HMCCUDEV ... group=..." versucht.
Habe ich mich an dieser Config von zap orientiert.
ccucalculate dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY
ccureadingfilter 1.(^ACTUAL|CONTROL|^SET_TEMP);(^WINDOW_OPEN|^VALVE)
ccureadingformat datapoint
ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;1.SET_TEMPERATURE$:desired-temp;1.ACTUAL_HUMIDITY$:humidity
cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
controldatapoint 1.SET_TEMPERATURE
event-on-change-reading .*
eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
stateFormat T: temperature° H: humidity% D: desired-temp° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE
statedatapoint 1.SET_TEMPERATURE
stripnumber 1
substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
webCmd control:Auto:Manu:Boost:on:off
widgetOverride control:slider,4.5,0.5,30.5,1
Habe den Dewpoint weggelassen.
Definiert habe ich via die Adressen
define HM_Heizung_Tobias_Group HMCCUDEV INT0000003 group=OEQ2090954,OEQ1569720
(Auch über die Namen geht es nicht: define HM_Heizung_Tobias_Group HMCCUDEV HM_Heizung_Tobias_Zimmer group=HM-Fensterkontakt-Tobias-klein,HM-Fensterkontakt-Tobias-Tuer)
Attribute sind folgende gesetzt:
define HM_Heizung_Tobias_Group HMCCUDEV INT0000003 group=OEQ2090954,OEQ1569720
attr HM_Heizung_Tobias_Group IODev d_ccu
attr HM_Heizung_Tobias_Group ccuget Value
attr HM_Heizung_Tobias_Group ccureadingfilter 1.(^SET_TEMPERATURE|^ACTUAL|CONTROL) ;; (^VALVE)
attr HM_Heizung_Tobias_Group ccureadingformat datapoint
attr HM_Heizung_Tobias_Group ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;;1.SET_TEMPERATURE$:desired-temp;;1.ACTUAL_HUMIDITY$:humidity
attr HM_Heizung_Tobias_Group ccureadings 1
attr HM_Heizung_Tobias_Group cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HM_Heizung_Tobias_Group controldatapoint 1.SET_TEMPERATURE
attr HM_Heizung_Tobias_Group event-on-change-reading .*
attr HM_Heizung_Tobias_Group eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr HM_Heizung_Tobias_Group hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
attr HM_Heizung_Tobias_Group room HomeMatic
attr HM_Heizung_Tobias_Group stateFormat T: temperature° H:humidity% D: desired-temp° V:4.VALVE_STATE% 1.CONTROL_MODE
attr HM_Heizung_Tobias_Group statedatapoint 1.SET_TEMPERATURE
attr HM_Heizung_Tobias_Group stripnumber 1
attr HM_Heizung_Tobias_Group substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
attr HM_Heizung_Tobias_Group webCmd control:Auto:Manu:Boost:on:off
attr HM_Heizung_Tobias_Group widgetOverride control:slider,4.5,0.5,30.5,1
Der Befehl "get d_ccu deviceinfo INT0000003" bringt folgende Info.
CHN INT0000003:0 HM_Heizung_Tobias_Zimmer:0
DPT {b} VirtualDevices.INT0000003:0.UPDATE_PENDING = false [RE]
DPT {n} VirtualDevices.INT0000003:0.RSSI_DEVICE = 20.0 [RE]
DPT {n} VirtualDevices.INT0000003:0.AES_KEY = 20.0 [R]
DPT {b} VirtualDevices.INT0000003:0.DEVICE_IN_BOOTLOADER = 20.0 [RE]
DPT {b} VirtualDevices.INT0000003:0.CONFIG_PENDING = false [RE]
DPT {b} VirtualDevices.INT0000003:0.UNREACH = false [RE]
DPT {b} VirtualDevices.INT0000003:0.LOWBAT = 20.0 [RE]
DPT {b} VirtualDevices.INT0000003:0.INHIBIT = 20.0 [RWE]
DPT {b} VirtualDevices.INT0000003:0.STICKY_UNREACH = true [RWE]
DPT {n} VirtualDevices.INT0000003:0.RSSI_PEER = 20.0 [RE]
CHN INT0000003:1 Tobias_Zimmer INT0000003:1
DPT {i} VirtualDevices.INT0000003:1.CONTROL_MODE = 0 [RE]
DPT {f} VirtualDevices.INT0000003:1.ACTUAL_HUMIDITY = 29.000000 [RE]
DPT {b} VirtualDevices.INT0000003:1.BOOST_MODE = [W]
DPT {b} VirtualDevices.INT0000003:1.AUTO_MODE = [W]
DPT {f} VirtualDevices.INT0000003:1.SET_TEMPERATURE = 12.000000 [RWE]
DPT {f} VirtualDevices.INT0000003:1.ACTUAL_TEMPERATURE = 23.100000 [RE]
DPT {f} VirtualDevices.INT0000003:1.MANU_MODE = [W]
DPT {b} VirtualDevices.INT0000003:1.COMFORT_MODE = [W]
DPT {b} VirtualDevices.INT0000003:1.LOWERING_MODE = [W]
DPT {f} VirtualDevices.INT0000003:1.PARTY_TEMPERATURE = 5.000000 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_TIME = 0 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_DAY = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_MONTH = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_YEAR = 0 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_TIME = 0 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_DAY = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_MONTH = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_YEAR = 0 [RW]
DPT {s} VirtualDevices.INT0000003:1.PARTY_MODE_SUBMIT = [W]
CHN INT0000003:2 Tobias_Zimmer INT0000003:2
DPT {b} VirtualDevices.INT0000003:2.STATE = true [RE]
In der Auflistung ist leider kein VALVE_STATE.
Es scheitert bereits an den Readings, die nicht erscheinen.
Es könnte etwas an der Definition oder dem ccureadingfilter faul sein, aber keine Ahnung was.
Die Gruppe sieht im HM Webinterf. so aus:
Gruppenname: Virituelles Gerät
TobiasZimmer INT0000003 HM_Heizung_Tobias_Zimmer
Definitionsversuche über den Gruppename waren nicht erfolgreich: Cannot detect IO device
mittels Namen "... HM_Heizung_Tobias_Zimmer group=HM-Fensterkontakt-Tobias-klein,HM-Fensterkontakt-Tobias-Tuer" geht die Definition, aber auch hier kommen keine Readings.
Ich bin echt ratlos, aber vielleicht hat ja jemand Rat.
Gruß Jupedi
Also das Device kannst Du definieren, nur die Readings werden nicht aktualisiert?
Hast Du im IO Device rpcinterfaces um VirtualDevices ergänzt? Falls nicht: RPC Server stoppen, das Interface ergänzen und wieder starten.
Sorry, hab ich vergessen zu erwähnen.
"rpcinterfaces BidCos-RF,HmIP-RF,VirtualDevices" ist drin.
Es läuft auch ein Gruppe mit IP Geräten.
Müssten in der deviceinfo der Gruppe nicht Readings aller Geräte auftauchen?
Gruppe:
CHN INT0000003:0 HM_Heizung_Tobias_Zimmer:0
DPT {b} VirtualDevices.INT0000003:0.UPDATE_PENDING = false [RE]
DPT {n} VirtualDevices.INT0000003:0.RSSI_DEVICE = 20.0 [RE]
DPT {n} VirtualDevices.INT0000003:0.AES_KEY = 20.0 [R]
DPT {b} VirtualDevices.INT0000003:0.DEVICE_IN_BOOTLOADER = 20.0 [RE]
DPT {b} VirtualDevices.INT0000003:0.CONFIG_PENDING = false [RE]
DPT {b} VirtualDevices.INT0000003:0.UNREACH = false [RE]
DPT {b} VirtualDevices.INT0000003:0.LOWBAT = 20.0 [RE]
DPT {b} VirtualDevices.INT0000003:0.INHIBIT = 20.0 [RWE]
DPT {b} VirtualDevices.INT0000003:0.STICKY_UNREACH = true [RWE]
DPT {n} VirtualDevices.INT0000003:0.RSSI_PEER = 20.0 [RE]
CHN INT0000003:1 Tobias_Zimmer INT0000003:1
DPT {i} VirtualDevices.INT0000003:1.CONTROL_MODE = 0 [RE]
DPT {f} VirtualDevices.INT0000003:1.ACTUAL_HUMIDITY = 33.000000 [RE]
DPT {b} VirtualDevices.INT0000003:1.BOOST_MODE = [W]
DPT {b} VirtualDevices.INT0000003:1.AUTO_MODE = [W]
DPT {f} VirtualDevices.INT0000003:1.SET_TEMPERATURE = 18.000000 [RWE]
DPT {f} VirtualDevices.INT0000003:1.ACTUAL_TEMPERATURE = 22.400000 [RE]
DPT {f} VirtualDevices.INT0000003:1.MANU_MODE = [W]
DPT {b} VirtualDevices.INT0000003:1.COMFORT_MODE = [W]
DPT {b} VirtualDevices.INT0000003:1.LOWERING_MODE = [W]
DPT {f} VirtualDevices.INT0000003:1.PARTY_TEMPERATURE = 5.000000 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_TIME = 0 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_DAY = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_MONTH = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_START_YEAR = 0 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_TIME = 0 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_DAY = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_MONTH = 1 [RW]
DPT {i} VirtualDevices.INT0000003:1.PARTY_STOP_YEAR = 0 [RW]
DPT {s} VirtualDevices.INT0000003:1.PARTY_MODE_SUBMIT = [W]
CHN INT0000003:2 Tobias_Zimmer INT0000003:2
DPT {b} VirtualDevices.INT0000003:2.STATE = false [RE]
Wandthermostat:
CHN OEQ1569720:0 HM_Heizung_Tobias_Wandthermostat:0
DPT {b} BidCos-RF.OEQ1569720:0.UNREACH = false [RE]
DPT {b} BidCos-RF.OEQ1569720:0.STICKY_UNREACH = true [RWE]
DPT {b} BidCos-RF.OEQ1569720:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.OEQ1569720:0.LOWBAT = false [RE]
DPT {n} BidCos-RF.OEQ1569720:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.OEQ1569720:0.RSSI_PEER = 185 [RE]
DPT {b} BidCos-RF.OEQ1569720:0.INHIBIT = false [RWE]
DPT {b} BidCos-RF.OEQ1569720:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.OEQ1569720:0.UPDATE_PENDING = false [RE]
DPT {n} BidCos-RF.OEQ1569720:0.AES_KEY = 1 [R]
CHN OEQ1569720:1 HM-TC-IT-WM-W-EU OEQ1569720:1
DPT {f} BidCos-RF.OEQ1569720:1.TEMPERATURE = 22.400000 [RE]
DPT {i} BidCos-RF.OEQ1569720:1.HUMIDITY = 33 [RE]
CHN OEQ1569720:2 HM-TC-IT-WM-W-EU OEQ1569720:2
DPT {i} BidCos-RF.OEQ1569720:2.CONTROL_MODE = 0 [RE]
DPT {b} BidCos-RF.OEQ1569720:2.LOWBAT_REPORTING = false [RE]
DPT {b} BidCos-RF.OEQ1569720:2.COMMUNICATION_REPORTING = false [RE]
DPT {b} BidCos-RF.OEQ1569720:2.WINDOW_OPEN_REPORTING = false [RE]
DPT {f} BidCos-RF.OEQ1569720:2.BATTERY_STATE = 3.200000 [RE]
DPT {i} BidCos-RF.OEQ1569720:2.BOOST_STATE = 0 [RE]
DPT {f} BidCos-RF.OEQ1569720:2.ACTUAL_TEMPERATURE = 22.400000 [RE]
DPT {f} BidCos-RF.OEQ1569720:2.ACTUAL_HUMIDITY = 33.000000 [RE]
DPT {f} BidCos-RF.OEQ1569720:2.SET_TEMPERATURE = 18.000000 [RWE]
DPT {b} BidCos-RF.OEQ1569720:2.AUTO_MODE = [W]
DPT {f} BidCos-RF.OEQ1569720:2.MANU_MODE = [W]
DPT {b} BidCos-RF.OEQ1569720:2.BOOST_MODE = [W]
DPT {b} BidCos-RF.OEQ1569720:2.COMFORT_MODE = [W]
DPT {b} BidCos-RF.OEQ1569720:2.LOWERING_MODE = [W]
DPT {s} BidCos-RF.OEQ1569720:2.PARTY_MODE_SUBMIT = [W]
DPT {f} BidCos-RF.OEQ1569720:2.PARTY_TEMPERATURE = 5.000000 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_START_TIME = 0 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_START_DAY = 1 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_START_MONTH = 1 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_START_YEAR = 0 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_STOP_TIME = 0 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_STOP_DAY = 1 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_STOP_MONTH = 1 [RW]
DPT {i} BidCos-RF.OEQ1569720:2.PARTY_STOP_YEAR = 0 [RW]
CHN OEQ1569720:7 HM-TC-IT-WM-W-EU OEQ1569720:7
DPT {i} BidCos-RF.OEQ1569720:7.DECISION_VALUE = 0 [RE]
Heizkörperthermostat:
CHN OEQ2090954:0 HM_Heizungkoerper_Tobias_Zimmer:0
DPT {b} BidCos-RF.OEQ2090954:0.UNREACH = false [RE]
DPT {b} BidCos-RF.OEQ2090954:0.STICKY_UNREACH = false [RWE]
DPT {b} BidCos-RF.OEQ2090954:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.OEQ2090954:0.LOWBAT = false [RE]
DPT {n} BidCos-RF.OEQ2090954:0.RSSI_DEVICE = 223 [RE]
DPT {n} BidCos-RF.OEQ2090954:0.RSSI_PEER = 195 [RE]
DPT {b} BidCos-RF.OEQ2090954:0.INHIBIT = false [RWE]
DPT {b} BidCos-RF.OEQ2090954:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.OEQ2090954:0.UPDATE_PENDING = false [RE]
DPT {n} BidCos-RF.OEQ2090954:0.AES_KEY = 1 [R]
CHN OEQ2090954:4 HM-CC-RT-DN OEQ2090954:4
DPT {i} BidCos-RF.OEQ2090954:4.CONTROL_MODE = 0 [RE]
DPT {i} BidCos-RF.OEQ2090954:4.FAULT_REPORTING = 0 [RE]
DPT {f} BidCos-RF.OEQ2090954:4.BATTERY_STATE = 3.100000 [RE]
DPT {i} BidCos-RF.OEQ2090954:4.VALVE_STATE = 0 [RE]
DPT {i} BidCos-RF.OEQ2090954:4.BOOST_STATE = 0 [RE]
DPT {f} BidCos-RF.OEQ2090954:4.ACTUAL_TEMPERATURE = 22.400000 [RE]
DPT {f} BidCos-RF.OEQ2090954:4.SET_TEMPERATURE = 18.000000 [RWE]
DPT {b} BidCos-RF.OEQ2090954:4.AUTO_MODE = [W]
DPT {f} BidCos-RF.OEQ2090954:4.MANU_MODE = [W]
DPT {b} BidCos-RF.OEQ2090954:4.BOOST_MODE = [W]
DPT {b} BidCos-RF.OEQ2090954:4.COMFORT_MODE = [W]
DPT {b} BidCos-RF.OEQ2090954:4.LOWERING_MODE = [W]
DPT {s} BidCos-RF.OEQ2090954:4.PARTY_MODE_SUBMIT = [W]
DPT {f} BidCos-RF.OEQ2090954:4.PARTY_TEMPERATURE = 5.000000 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_START_TIME = 0 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_START_DAY = 1 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_START_MONTH = 1 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_START_YEAR = 0 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_STOP_TIME = 0 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_STOP_DAY = 1 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_STOP_MONTH = 1 [RW]
DPT {i} BidCos-RF.OEQ2090954:4.PARTY_STOP_YEAR = 0 [RW]
Mir fehlt der VALVE_STATE in der Gruppe.
Nein, nicht in der deviceinfo. Da stehen nur die Datenpunkte drin, die tatsächlich zum virtuellen Device gehören. Wenn nun allerdings Readings für Devices der Gruppe (also Thermostat usw) aktualisiert werden, schreibt HMCCU diese Readings auch in das FHEM Gruppendevice rein.
Bekommst Du Readings bei:
get HM_Heizung_Tobias_Group update
Andernfalls mal ccureadingfilter so setzen
ccureadingfilter (^SET_TEMPERATURE|^ACTUAL|CONTROL|VALVE)
Der ccureadingfilter war es. Ich habe Werte!!!
Danke
Was macht eigentlich der "Pfeil nach oben im ccureadingfilter, es geht ja zum Teil auch ohne?
ccureadingfilter ist eine Liste regulärer Ausdrücke. Das ^ steht bei Regexp für den Anfang einer Zeichenkette.
Bei Verwendung von FHEM und Perl solltest Du Dich auf jeden Fall mit regulären Ausdrücken vertraut machen. Die werden überall eingesetzt.
kommt dann wohl als nächstes, merci
Homematic IP Schalt-Mess-Aktor HmIP-FSM, 5 A, Unterputz
Keine defaults vorhanden
CHN 000898A9ABA44F:0 HmIP-sd-bo1:0
DPT {f} HmIP-RF.000898A9ABA44F:0.ACTUAL_TEMPERATURE = 0.000000 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:0.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000898A9ABA44F:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.000898A9ABA44F:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.000898A9ABA44F:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.000898A9ABA44F:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.000898A9ABA44F:0.RSSI_DEVICE = 203 [RE]
DPT {n} HmIP-RF.000898A9ABA44F:0.RSSI_PEER = 203 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000898A9ABA44F:0.UPDATE_PENDING = false [RE]
CHN 000898A9ABA44F:1 HmIP-FSM 000898A9ABA44F:1
DPT {i} HmIP-RF.000898A9ABA44F:1.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:1.SECTION = 2 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:1.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:1.STATE = true [RE]
CHN 000898A9ABA44F:2 HmIP-FSM 000898A9ABA44F:2
DPT {f} HmIP-RF.000898A9ABA44F:2.ON_TIME = [W]
DPT {i} HmIP-RF.000898A9ABA44F:2.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:2.SECTION = 2 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:2.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:2.STATE = true [RWE]
CHN 000898A9ABA44F:3 HmIP-FSM 000898A9ABA44F:3
DPT {f} HmIP-RF.000898A9ABA44F:3.ON_TIME = [W]
DPT {i} HmIP-RF.000898A9ABA44F:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:3.SECTION = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:3.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:3.STATE = false [RWE]
CHN 000898A9ABA44F:4 HmIP-FSM 000898A9ABA44F:4
DPT {f} HmIP-RF.000898A9ABA44F:4.ON_TIME = [W]
DPT {i} HmIP-RF.000898A9ABA44F:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:4.SECTION = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:4.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:4.STATE = false [RWE]
CHN 000898A9ABA44F:5 HmIP-FSM 000898A9ABA44F:5
DPT {f} HmIP-RF.000898A9ABA44F:5.CURRENT = 335.000000 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:5.CURRENT_STATUS = 0 [RE]
DPT {f} HmIP-RF.000898A9ABA44F:5.ENERGY_COUNTER = 115.200000 [RE]
DPT {b} HmIP-RF.000898A9ABA44F:5.ENERGY_COUNTER_OVERFLOW = false [RE]
DPT {f} HmIP-RF.000898A9ABA44F:5.FREQUENCY = 49.980000 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:5.FREQUENCY_STATUS = 0 [RE]
DPT {f} HmIP-RF.000898A9ABA44F:5.POWER = 57.890000 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:5.POWER_STATUS = 0 [RE]
DPT {f} HmIP-RF.000898A9ABA44F:5.VOLTAGE = 223.000000 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:5.VOLTAGE_STATUS = 0 [RE]
CHN 000898A9ABA44F:7 HmIP-FSM 000898A9ABA44F:7
DPT {i} HmIP-RF.000898A9ABA44F:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.000898A9ABA44F:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
DPT {i} HmIP-RF.000898A9ABA44F:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = [W]
Habe ich mal so definiert:
attr HmIP_sd_bo2 ccureadingfilter (STATE|CURRENT|ENERGY_COUNTER|POWER)
attr HmIP_sd_bo2 controldatapoint 1.STATE
attr HmIP_sd_bo2 statedatapoint 2.STATE
attr HmIP_sd_bo2 statevals on:1,off:0
attr HmIP_sd_bo2 stripnumber 1
attr HmIP_sd_bo2 substitute STATE!(1|true):on,(0|false):off
attr HmIP_sd_bo2 webCmd control
attr HmIP_sd_bo2 widgetOverride control:uzsuToggle,off,on
Guten Morgen,
kann mir jemand bei diesem Beitrag (https://forum.fhem.de/index.php/topic,99397.0.html) helfen? Wollte mich damit nicht hier anhängen.
Zwischenzeitlich habe ich gesehen, dass die Kanäle offenbar in FHEM vorhanden sind (get Mauer deviceinfo).
CHN NEQ1484365:0 Gartenbewaesserung1:0
DPT {b} BidCos-RF.NEQ1484365:0.UNREACH = false [RE]
DPT {b} BidCos-RF.NEQ1484365:0.STICKY_UNREACH = false [RWE]
DPT {b} BidCos-RF.NEQ1484365:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.NEQ1484365:0.LOWBAT = false [RE]
DPT {b} BidCos-RF.NEQ1484365:0.DUTYCYCLE = false [RE]
DPT {n} BidCos-RF.NEQ1484365:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.NEQ1484365:0.RSSI_PEER = 44 [RE]
DPT {n} BidCos-RF.NEQ1484365:0.AES_KEY = 0 [R]
CHN NEQ1484365:1 Rasen Hecke
DPT {b} BidCos-RF.NEQ1484365:1.STATE = true [RWE]
DPT {f} BidCos-RF.NEQ1484365:1.ON_TIME = [W]
DPT {b} BidCos-RF.NEQ1484365:1.INHIBIT = false [RWE]
DPT {b} BidCos-RF.NEQ1484365:1.INSTALL_TEST = [W]
DPT {b} BidCos-RF.NEQ1484365:1.WORKING = false [RE]
CHN NEQ1484365:2 Rasen Mitte
DPT {b} BidCos-RF.NEQ1484365:2.STATE = true [RWE]
DPT {f} BidCos-RF.NEQ1484365:2.ON_TIME = [W]
DPT {b} BidCos-RF.NEQ1484365:2.INHIBIT = false [RWE]
DPT {b} BidCos-RF.NEQ1484365:2.INSTALL_TEST = [W]
DPT {b} BidCos-RF.NEQ1484365:2.WORKING = false [RE]
CHN NEQ1484365:3 Rasen Terrasse
DPT {b} BidCos-RF.NEQ1484365:3.STATE = true [RWE]
DPT {f} BidCos-RF.NEQ1484365:3.ON_TIME = [W]
DPT {b} BidCos-RF.NEQ1484365:3.INHIBIT = false [RWE]
DPT {b} BidCos-RF.NEQ1484365:3.INSTALL_TEST = [W]
DPT {b} BidCos-RF.NEQ1484365:3.WORKING = false [RE]
CHN NEQ1484365:4 Hang hinten
DPT {b} BidCos-RF.NEQ1484365:4.STATE = false [RWE]
DPT {f} BidCos-RF.NEQ1484365:4.ON_TIME = [W]
DPT {b} BidCos-RF.NEQ1484365:4.INHIBIT = false [RWE]
DPT {b} BidCos-RF.NEQ1484365:4.INSTALL_TEST = [W]
DPT {b} BidCos-RF.NEQ1484365:4.WORKING = false [RE]
Wie spreche ich die jetzt an bzw. wie mach ich daraus einen Schalter (on/off)?
odie13690
Du musst für jeden Kanal, der einen STATE Datenpunkt enthält, in FHEM ein HMCCUCHN Device definieren, damit du sie auseinanderhalten bzw. getrennt ansprechen kannst.
Beispiele, wie man aus dem STATE dann ein on/off macht, gibt es genügend, zB bei einfachen Steckdosen.
Ergänzung: es geht natürlich auch mit einem einzigen HMCCUDEV Device, ist dann allerdings etwas komplizierter zu konfigurieren.
Zitat von: tatu123 am 17 September 2018, 14:30:17
Hallo zap,
vielen Dank mit der neuen Version funktioniert jetzt die Steuerung über pct. Vielen Dank für die schnelle Lösung.
Im statedatapoint habe ich mit Absicht 3.LEVEL benutzt. Nur in dem Reading steht der aktuelle Wert der Position des Rollos drin und
das egal von welche Quelle die Steuerung erfolgte. In 4.LEVEL steht nur eine Position drin welche durch die Steuerung über 4.LEVEL erfolgte.
bei 5. und 6.LEVEL ist es auch so.
Bis jetzt macht die Einstellung was sie soll.
Muss ich das aus irgend einem Grund zwingend ändern? Ich würde es lieber so lassen.
Viel Grüße
Hallo tatu123,
hast du das Problem mit dem HmIP-BROLL und dem Slider (bei manuellen Betrieb wird der falsche Wert angezeigt) hinbekommen?
Falls ja kannst du mir bitte nochmal deine gesamte
attr
posten.
Bei mir wird im manuellen Tasterbetrieb mit Stoptaste im Slider immer nur 0 oder 100 % ausgegeben
wenn ich
controldatapoint 4.LEVEL
ganz entferne wird es natürlich richtig angezeigt aber der Slider ist nicht mehr in Funktion.
VG Thomas
Hallo Thomas,
mein Rollo sieht so aus:
defmod d_roll HMCCUDEV HmIP-FROLL-oscar
attr d_roll userattr Rollade_Typ Rollade_Typ_map structexclude
attr d_roll IODev d_ccu
attr d_roll Rollade_Typ Alle_Rolladen
attr d_roll ccureadingfilter (LEVEL|PROCESS|SECTION|PRESS)
attr d_roll ccuscaleval LEVEL:0:1:0:100
attr d_roll cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down sonne:fts_shutter_70 nacht:fts_shutter_80
attr d_roll controldatapoint 4.LEVEL
attr d_roll event-on-change-reading PRESS.*
attr d_roll event-on-update-reading .*
attr d_roll eventMap /datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/datapoint 4.LEVEL 35:sonne/datapoint 4.LEVEL 10:nacht/
attr d_roll room all,oscar
attr d_roll stateFormat { my $l = ReadingsVal ($name, "3.LEVEL", "na");;;; sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %";;;; }
attr d_roll statedatapoint 3.LEVEL
attr d_roll stripnumber 1
attr d_roll substexcl control
attr d_roll verbose 5
attr d_roll webCmd control:up:stop:down:sonne:nacht
attr d_roll widgetOverride control:slider,0,10,100
Der slider funktioniert. Einzig bei einem Neustart von fhem wird der slider nicht initialisiert. Das "Problem" konnte ich nicht lösen.
Ich hoffe das hilft.
VG
Heiko
Zitat von: tatu123 am 11 Juni 2019, 08:28:56
Hallo Thomas,
mein Rollo sieht so aus:
defmod d_roll HMCCUDEV HmIP-FROLL-oscar
attr d_roll userattr Rollade_Typ Rollade_Typ_map structexclude
attr d_roll IODev d_ccu
attr d_roll Rollade_Typ Alle_Rolladen
attr d_roll ccureadingfilter (LEVEL|PROCESS|SECTION|PRESS)
attr d_roll ccuscaleval LEVEL:0:1:0:100
attr d_roll cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down sonne:fts_shutter_70 nacht:fts_shutter_80
attr d_roll controldatapoint 4.LEVEL
attr d_roll event-on-change-reading PRESS.*
attr d_roll event-on-update-reading .*
attr d_roll eventMap /datapoint 4.STOP true:stop/datapoint 4.LEVEL 0:down/datapoint 4.LEVEL 100:up/datapoint 4.LEVEL 35:sonne/datapoint 4.LEVEL 10:nacht/
attr d_roll room all,oscar
attr d_roll stateFormat { my $l = ReadingsVal ($name, "3.LEVEL", "na");;;; sprintf "%s", $l =~ /^(open|closed|na)$/ ? "$l" : "$l %";;;; }
attr d_roll statedatapoint 3.LEVEL
attr d_roll stripnumber 1
attr d_roll substexcl control
attr d_roll verbose 5
attr d_roll webCmd control:up:stop:down:sonne:nacht
attr d_roll widgetOverride control:slider,0,10,100
Der slider funktioniert. Einzig bei einem Neustart von fhem wird der slider nicht initialisiert. Das "Problem" konnte ich nicht lösen.
Ich hoffe das hilft.
VG
Heiko
Danke Heiko,
und du bist dir sicher das wenn du manuell den Taster nach oben/unten bewegst und mitten drin auf Stop drückst im Slider trotzdem die richtige Behanghöhe von Kanal 3.LEVEL und nicht nur 100 oder 0 % von Kanal 4.LEVEL ausgegeben wird.
Ich habe deine Config 1zu1 übernommen aber im manuellen Modus passt der Slider nicht.
Gruß Thomas
Bin gerade nicht zu Hause. Bin mir aber fast sicher dass das geht. Wenn ich zu Hause bin werde ich es noch Mal probieren und berichten.
Heiko
So arbeitet wie von mir erwartet. Manuelle Fahrten werden vom slider richtig angezeigt.
Ist es möglich das der BROLL sich doch anders als mein FROLL verhält?
VG
Heiko
Zitat von: tatu123 am 11 Juni 2019, 12:21:32
So arbeitet wie von mir erwartet. Manuelle Fahrten werden vom slider richtig angezeigt.
Ist es möglich das der BROLL sich doch anders als mein FROLL verhält?
VG
Heiko
Also ich habe weder BROLL noch FROLL. Bei mir ist ein HMiP-Wired Dimmer.
Aber es dürfte eigentlich egal sein, welches der 3 Geräte genutzt wird,WENN:
dir "3.LEVEL" den "realen Behangwert ausgibt (auch wenn du per externen Taster hoch/runter drückst und zwischendurch auf Stop drückst)
und "4.LEVEL" nur den Wert des Aktor ausgibt(also bei Betätigung per externen Taster hoch/runter drückst und zwischendurch auf Stop drückst > dort dürfte dann immer nur der Wert "0" oder "100" ausgegeben werden)
Kannst du das mal bitte testen und in FHEM die 2 Readings (3.LEVEL & 4.LEVEL) anschauen was die ausgeben.
Alternativ wäre natürlich interessant was deine CCU anzeigt, dort besteht ja das gleich Problem. Oder hast du in der CCU den "Expertenmodus" nicht eingeschalten?
Gruß Thomas
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
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
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
ich glaube, das bekomme ich erst gelöst, wenn ich so ein Teil in Betrieb habe und die verschiedenen Fälle live getestet habe.
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
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
Hallo,
Wie bekomme ich denn eine virtuelle Fernbedienung mit den beiden Schaltern in FHEM angelegt?
Danke.
Grüße
Matthias
Mit
define mydev HMCCUCHN ccuDevName
vielleicht?
Habe es gerade versucht - gibt aber keine Infos zum Device.
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.
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
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
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
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.
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)
Hallo an alle hier.
Hat schon jemand den "HmIPW-FIO6" (Wired Schalterschnittstelle) eingebunden und hat für mich eine kleine Hilfe.
Muss ja nicht unbedingt direkt diese Schnittstelle sein.
Ich möchte das Tastersignal gern auswerten.
Genau genommen einmal den "kurzen Tastendruck" und einmal den "langen Tastendruck"
Im Moment wird egal bei welchem Tastendruck immer nur das Reading "hmstate" getriggert. Also der Zeitstempel aktualisiert. Im Reading bleibt immer "false" stehen
Danke euch.
Gruß Thomas
bei Deviceinfo findet man folgendes:
CHN 001758A9A779FB:1 Bad_6fach_Schaltermodul_Taster_1
DPT {b} HmIP-RF.001758A9A779FB:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.001758A9A779FB:1.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001758A9A779FB:1.STATE = false [RE]
Internals:
CFGFN
DEF 001758A9A779FB:1
FUUID 5dc90194-f33f-b0b0-7cbe-f09179c06583bc60
IODev d_ccu
NAME Bad_6fach_Schaltermodul_Taster_1
NR 530232
STATE false
TYPE HMCCUCHN
ccuaddr 001758A9A779FB:1
ccudevstate active
ccuif HmIP-RF
ccuname Bad_6fach_Schaltermodul_Taster_1
ccutype HmIPW-FIO6
channels 1
statevals devstate
READINGS:
2019-11-11 08:39:22 0.UNREACH alive
2019-11-11 08:40:27 1.STATE false
2019-11-11 08:24:11 Bad_6fach_Schaltermodul_Taster_1.STATE false
2019-11-11 08:31:29 Bad_6fach_Taster.0.UNREACH alive
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_TYPE 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_1 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_2 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_3 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_4 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_5 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_6 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.ALARM_MODE_ZONE_7 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.CHANNEL_OPERATION_MODE 1
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.CONTACT_BOOST 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.DBL_PRESS_TIME 0.0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.EVENT_DELAY_UNIT 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.EVENT_DELAY_VALUE 0
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.LONG_PRESS_TIME 0.4
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.MSG_FOR_POS_A 2
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.MSG_FOR_POS_B 1
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.REPEATED_LONG_PRESS_TIMEOUT_UNIT 2
2019-11-11 08:24:02 R-Bad_6fach_Schaltermodul_Taster_1.REPEATED_LONG_PRESS_TIMEOUT_VALUE 2
2019-11-11 08:40:27 control false
2019-11-11 08:40:27 hmstate false
2019-11-11 08:40:27 state false
hmccu:
devspec 001758A9A779FB:1
dp:
0.ACTUAL_TEMPERATURE:
OVAL 21.000000
VAL 21.000000
0.CONFIG_PENDING:
OVAL 0
VAL false
0.ERROR_CODE:
OVAL 0
VAL 0
0.ERROR_OVERHEAT:
OVAL false
VAL false
0.ERROR_UNDERVOLTAGE:
OVAL false
VAL false
0.INSTALL_TEST:
OVAL true
VAL true
0.OPERATING_VOLTAGE:
OVAL 24.100000
VAL 24.100000
0.OPERATING_VOLTAGE_STATUS:
OVAL 0
VAL 0
0.UNREACH:
OSVAL alive
OVAL 0
SVAL alive
VAL false
0.UPDATE_PENDING:
OVAL false
VAL false
1.STATE:
OSVAL false
OVAL false
SVAL false
VAL false
Attributes:
IODev d_ccu
ccureadingfilter (state|STATE|1.STATE|1.PRESS_LONG|1.PRESS_SHORT|PRESS)
ccureadingformat datapoint
event-on-update-reading .*
room CCU3
statedatapoint 1.STATE
Ich denke, es ist wie mit den meisten Geräten, die PRESS Datenpunkte liefern: Du musst in der CCU die Tasten mit einem Dummy Programm abfragen, damit die CCU entsprechende Events schickt.
Außerdem im FHEM Device event-on-update-reading setzen, da diese Datenpunkte niemals false werden, sondern bei jedem Tastendruck erneut auf true gesetzt werden.
Hilfe beim Einrichten vom HM-TC-IT-WM-W-EU für weekprofile, ich bekomme nicht die Readings, die mit P1_TEMPERATURE und P1_ENDTIME anfangen.
Was mache ich hier falsch? Beim Thermostat der Heizung werden alle Readings angelegt.
Hier der Code vom HM-TC-IT-WM-W-EU:
defmod BAD_Heizung_Wand HMCCUDEV PEQ1186264
attr BAD_Heizung_Wand userattr weekprofile
attr BAD_Heizung_Wand IODev d_ccu
attr BAD_Heizung_Wand ccucalculate dewpoint:DEWPOINT:1.TEMPERATURE,1.HUMIDITY
attr BAD_Heizung_Wand ccureadingfilter (HUMIDITY|TEMPERATURE|DEWPOINT|SET_TEMPERATURE|BATTERY_STATE|WINDOW_OPEN|P1_TEMPERATURE)
attr BAD_Heizung_Wand cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr BAD_Heizung_Wand controldatapoint 2.SET_TEMPERATURE
attr BAD_Heizung_Wand devStateIcon OK:10px-kreis-gruen Error:10px-kreis-rot Initialized:10px-kreis-gelb
attr BAD_Heizung_Wand event-on-change-reading .*
attr BAD_Heizung_Wand eventMap /datapoint 2.MANU_MODE 20.0:Manu/datapoint 2.AUTO_MODE 1:Auto/datapoint 2.BOOST_MODE 1:Boost/datapoint 2.MANU_MODE 4.5:off/datapoint 2.MANU_MODE 30.5:on/
attr BAD_Heizung_Wand icon hm-tc-it-wm-w-eu
attr BAD_Heizung_Wand room Raum -> Test,Homematic
attr BAD_Heizung_Wand stateFormat T: 1.TEMPERATURE° H: 1.HUMIDITY% D: 2.SET_TEMPERATURE° P: DEWPOINT°
attr BAD_Heizung_Wand statechannel 2
attr BAD_Heizung_Wand statedatapoint 2.SET_TEMPERATURE
attr BAD_Heizung_Wand stripnumber 1
attr BAD_Heizung_Wand substexcl control
attr BAD_Heizung_Wand substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
attr BAD_Heizung_Wand webCmd control:Auto:Manu:Boost:on:off
attr BAD_Heizung_Wand weekprofile BAD_Winter
attr BAD_Heizung_Wand widgetOverride control:slider,4.5,0.5,30.5,1
setstate BAD_Heizung_Wand T: 21.5° H: 54% D: 21.0° P: 11.8°
setstate BAD_Heizung_Wand 2019-11-21 19:33:10 1.HUMIDITY 54
setstate BAD_Heizung_Wand 2019-11-21 19:33:10 1.TEMPERATURE 21.5
setstate BAD_Heizung_Wand 2019-11-21 19:35:33 2.ACTUAL_HUMIDITY 55.0
setstate BAD_Heizung_Wand 2019-11-21 19:35:33 2.ACTUAL_TEMPERATURE 21.6
setstate BAD_Heizung_Wand 2019-11-21 19:33:00 2.BATTERY_STATE 2.9
setstate BAD_Heizung_Wand 2019-11-20 17:21:13 2.CONTROL_MODE AUTO
setstate BAD_Heizung_Wand 2019-11-21 19:33:00 2.PARTY_TEMPERATURE 5.0
setstate BAD_Heizung_Wand 2019-11-21 19:35:33 2.SET_TEMPERATURE 21.0
setstate BAD_Heizung_Wand 2019-11-21 19:33:00 2.WINDOW_OPEN_REPORTING closed
setstate BAD_Heizung_Wand 2019-11-21 19:33:10 DEWPOINT 11.8
setstate BAD_Heizung_Wand 2019-11-21 19:35:33 control 21.0
setstate BAD_Heizung_Wand 2019-11-21 19:35:33 hmstate 21.0
setstate BAD_Heizung_Wand 2019-11-21 19:35:33 state 21.0
und ein configlist:
P1_TEMPERATURE_SATURDAY_10=17.000000
P1_ENDTIME_MONDAY_5=1050
P3_ENDTIME_SUNDAY_12=1440
P1_ENDTIME_SUNDAY_11=1440
P1_ENDTIME_FRIDAY_6=1260
P1_TEMPERATURE_SATURDAY_5=18.000000
P2_TEMPERATURE_TUESDAY_3=17.000000
P2_ENDTIME_FRIDAY_3=1440
P2_ENDTIME_WEDNESDAY_10=1440
P3_ENDTIME_MONDAY_2=1440
P1_TEMPERATURE_FRIDAY_8=17.000000
P2_ENDTIME_THURSDAY_12=1440
P1_TEMPERATURE_MONDAY_13=17.000000
P2_TEMPERATURE_SUNDAY_2=17.000000
P2_TEMPERATURE_FRIDAY_10=17.000000
P1_TEMPERATURE_FRIDAY_4=21.000000
P2_ENDTIME_SATURDAY_13=1440
P3_TEMPERATURE_SUNDAY_13=17.000000
P1_ENDTIME_SUNDAY_10=1440
P1_ENDTIME_SUNDAY_7=1440
P3_TEMPERATURE_WEDNESDAY_10=17.000000
P2_ENDTIME_SUNDAY_4=1440
P2_TEMPERATURE_THURSDAY_9=17.000000
P3_TEMPERATURE_WEDNESDAY_2=17.000000
P2_TEMPERATURE_FRIDAY_1=17.000000
P1_ENDTIME_SUNDAY_3=900
P2_TEMPERATURE_SATURDAY_6=17.000000
P1_TEMPERATURE_SUNDAY_12=17.000000
P3_TEMPERATURE_FRIDAY_7=17.000000
P2_ENDTIME_SUNDAY_6=1440
P3_ENDTIME_WEDNESDAY_6=1440
P2_TEMPERATURE_SATURDAY_12=17.000000
P2_ENDTIME_FRIDAY_11=1440
P1_ENDTIME_THURSDAY_6=1440
P2_ENDTIME_SATURDAY_2=1440
P1_ENDTIME_FRIDAY_4=840
P3_ENDTIME_THURSDAY_10=1440
P2_ENDTIME_THURSDAY_9=1440
P2_ENDTIME_FRIDAY_7=1440
P2_TEMPERATURE_SATURDAY_7=17.000000
P2_ENDTIME_FRIDAY_10=1440
P2_TEMPERATURE_MONDAY_3=17.000000
P2_ENDTIME_SATURDAY_4=1440
P3_TEMPERATURE_MONDAY_12=17.000000
DAYLIGHT_SAVING_TIME=1
P2_ENDTIME_MONDAY_1=1440
P3_TEMPERATURE_MONDAY_1=17.000000
P1_ENDTIME_SATURDAY_9=1440
P1_ENDTIME_THURSDAY_2=420
P3_TEMPERATURE_SUNDAY_11=17.000000
P3_ENDTIME_MONDAY_9=1440
P3_TEMPERATURE_WEDNESDAY_9=17.000000
P2_TEMPERATURE_SATURDAY_1=17.000000
P1_ENDTIME_THURSDAY_4=1200
P2_TEMPERATURE_MONDAY_7=17.000000
P1_TEMPERATURE_SUNDAY_1=18.000000
P1_TEMPERATURE_MONDAY_11=17.000000
P1_TEMPERATURE_THURSDAY_8=17.000000
P3_TEMPERATURE_FRIDAY_3=17.000000
P3_TEMPERATURE_WEDNESDAY_1=17.000000
P2_TEMPERATURE_TUESDAY_1=17.000000
P1_TEMPERATURE_TUESDAY_6=17.000000
P3_ENDTIME_TUESDAY_13=1440
P2_ENDTIME_SATURDAY_6=1440
P2_TEMPERATURE_FRIDAY_12=17.000000
P1_ENDTIME_TUESDAY_10=1440
P1_TEMPERATURE_FRIDAY_2=21.000000
P3_ENDTIME_WEDNESDAY_8=1440
BOOST_AFTER_WINDOW_OPEN=0
P1_TEMPERATURE_SUNDAY_10=17.000000
P2_TEMPERATURE_SUNDAY_4=17.000000
P1_TEMPERATURE_WEDNESDAY_10=17.000000
P1_TEMPERATURE_THURSDAY_9=17.000000
P2_ENDTIME_TUESDAY_11=1440
P2_TEMPERATURE_WEDNESDAY_6=17.000000
P1_ENDTIME_THURSDAY_13=1440
P3_TEMPERATURE_MONDAY_10=17.000000
P2_TEMPERATURE_WEDNESDAY_10=17.000000
P1_ENDTIME_SATURDAY_12=1440
P2_ENDTIME_WEDNESDAY_9=1440
P2_ENDTIME_TUESDAY_1=1440
P2_TEMPERATURE_SUNDAY_8=17.000000
P3_TEMPERATURE_SATURDAY_6=17.000000
P1_TEMPERATURE_WEDNESDAY_9=17.000000
P3_TEMPERATURE_FRIDAY_6=17.000000
P3_ENDTIME_SUNDAY_13=1440
P1_TEMPERATURE_THURSDAY_7=17.000000
P1_ENDTIME_SATURDAY_3=900
P2_TEMPERATURE_WEDNESDAY_8=17.000000
P2_ENDTIME_WEDNESDAY_13=1440
P3_TEMPERATURE_TUESDAY_4=17.000000
P3_TEMPERATURE_THURSDAY_9=17.000000
P3_ENDTIME_TUESDAY_6=1440
WEEK_PROGRAM_POINTER=0
P1_TEMPERATURE_TUESDAY_11=17.000000
P1_ENDTIME_SUNDAY_1=480
P2_ENDTIME_WEDNESDAY_7=1440
P1_ENDTIME_SATURDAY_8=1440
P3_TEMPERATURE_FRIDAY_9=17.000000
P3_TEMPERATURE_TUESDAY_8=17.000000
P2_ENDTIME_WEDNESDAY_2=1440
P3_TEMPERATURE_THURSDAY_12=17.000000
P2_TEMPERATURE_SATURDAY_10=17.000000
P2_ENDTIME_FRIDAY_1=1440
P1_TEMPERATURE_FRIDAY_5=18.000000
P3_ENDTIME_WEDNESDAY_5=1440
P3_ENDTIME_FRIDAY_9=1440
P2_ENDTIME_SATURDAY_7=1440
P3_TEMPERATURE_SATURDAY_13=17.000000
P2_TEMPERATURE_MONDAY_9=17.000000
P3_TEMPERATURE_SATURDAY_3=17.000000
P2_TEMPERATURE_SATURDAY_9=17.000000
P2_TEMPERATURE_THURSDAY_13=17.000000
HEATING_COOLING=0
P2_TEMPERATURE_SUNDAY_5=17.000000
P1_ENDTIME_TUESDAY_7=1440
P2_ENDTIME_MONDAY_7=1440
P1_ENDTIME_THURSDAY_7=1440
P1_ENDTIME_MONDAY_4=840
P3_ENDTIME_THURSDAY_1=1440
P1_ENDTIME_WEDNESDAY_3=1020
P2_ENDTIME_MONDAY_10=1440
P1_TEMPERATURE_WEDNESDAY_11=17.000000
P3_TEMPERATURE_WEDNESDAY_6=17.000000
P2_ENDTIME_SUNDAY_5=1440
P2_ENDTIME_THURSDAY_8=1440
P2_ENDTIME_MONDAY_11=1440
P3_ENDTIME_SATURDAY_11=1440
P3_ENDTIME_SUNDAY_8=1440
P1_TEMPERATURE_TUESDAY_7=17.000000
P3_TEMPERATURE_THURSDAY_13=17.000000
P2_TEMPERATURE_MONDAY_6=17.000000
P2_TEMPERATURE_SATURDAY_11=17.000000
P3_TEMPERATURE_WEDNESDAY_3=17.000000
P2_TEMPERATURE_WEDNESDAY_11=17.000000
P3_ENDTIME_THURSDAY_5=1440
P2_ENDTIME_MONDAY_3=1440
P2_TEMPERATURE_THURSDAY_7=17.000000
P3_ENDTIME_FRIDAY_2=1440
P1_ENDTIME_FRIDAY_5=1050
P1_TEMPERATURE_TUESDAY_13=17.000000
P2_ENDTIME_THURSDAY_3=1440
P3_ENDTIME_WEDNESDAY_11=1440
P1_TEMPERATURE_THURSDAY_10=17.000000
P1_ENDTIME_MONDAY_6=1260
P2_ENDTIME_TUESDAY_5=1440
SHOW_WEEKDAY=1
P2_TEMPERATURE_FRIDAY_11=17.000000
P1_ENDTIME_THURSDAY_10=1440
P3_ENDTIME_FRIDAY_4=1440
P1_TEMPERATURE_MONDAY_12=17.000000
P2_TEMPERATURE_TUESDAY_2=17.000000
P1_TEMPERATURE_WEDNESDAY_3=18.000000
P1_TEMPERATURE_TUESDAY_12=17.000000
P1_TEMPERATURE_WEDNESDAY_1=18.000000
P1_TEMPERATURE_SATURDAY_3=18.000000
P3_ENDTIME_SUNDAY_3=1440
P2_TEMPERATURE_SUNDAY_3=17.000000
P3_ENDTIME_THURSDAY_6=1440
P2_ENDTIME_FRIDAY_12=1440
P1_ENDTIME_WEDNESDAY_6=1440
P1_TEMPERATURE_FRIDAY_7=18.000000
P3_TEMPERATURE_SUNDAY_12=17.000000
P3_TEMPERATURE_WEDNESDAY_8=17.000000
P3_TEMPERATURE_FRIDAY_4=17.000000
P1_TEMPERATURE_SATURDAY_1=18.000000
P1_TEMPERATURE_THURSDAY_5=18.000000
P3_ENDTIME_SUNDAY_7=1440
P1_TEMPERATURE_SUNDAY_13=17.000000
P3_ENDTIME_SUNDAY_10=1440
P2_TEMPERATURE_MONDAY_2=17.000000
P3_ENDTIME_FRIDAY_6=1440
P3_TEMPERATURE_SATURDAY_12=17.000000
P1_TEMPERATURE_SATURDAY_8=17.000000
P3_ENDTIME_SUNDAY_11=1440
P3_ENDTIME_MONDAY_5=1440
P1_ENDTIME_SUNDAY_12=1440
P2_ENDTIME_WEDNESDAY_1=1440
P3_TEMPERATURE_MONDAY_13=17.000000
P3_TEMPERATURE_FRIDAY_8=17.000000
P1_ENDTIME_MONDAY_2=450
P2_ENDTIME_MONDAY_8=1440
MIN_MAX_VALUE_NOT_RELEVANT_FOR_MANU_MODE=0
P2_TEMPERATURE_MONDAY_4=17.000000
P1_TEMPERATURE_MONDAY_10=17.000000
P1_TEMPERATURE_WEDNESDAY_4=21.000000
P2_ENDTIME_TUESDAY_2=1440
P3_ENDTIME_SATURDAY_12=1440
P3_TEMPERATURE_SUNDAY_10=17.000000
P1_ENDTIME_WEDNESDAY_8=1440
P3_TEMPERATURE_FRIDAY_2=17.000000
P3_ENDTIME_THURSDAY_13=1440
P3_TEMPERATURE_WEDNESDAY_7=17.000000
P2_TEMPERATURE_FRIDAY_13=17.000000
P2_TEMPERATURE_MONDAY_8=17.000000
GLOBAL_BUTTON_LOCK=0
P3_TEMPERATURE_TUESDAY_6=17.000000
P2_ENDTIME_MONDAY_13=1440
P1_TEMPERATURE_WEDNESDAY_7=17.000000
P1_TEMPERATURE_FRIDAY_3=18.000000
P3_TEMPERATURE_MONDAY_11=17.000000
P3_TEMPERATURE_SUNDAY_1=17.000000
P2_TEMPERATURE_TUESDAY_13=17.000000
P3_ENDTIME_TUESDAY_10=1440
P2_TEMPERATURE_SUNDAY_7=17.000000
P1_ENDTIME_TUESDAY_13=1440
P1_ENDTIME_MONDAY_9=1440
P3_ENDTIME_THURSDAY_2=1440
P2_ENDTIME_SATURDAY_10=1440
P1_TEMPERATURE_SUNDAY_11=17.000000
P1_TEMPERATURE_MONDAY_1=18.000000
P3_ENDTIME_SATURDAY_9=1440
DISPLAY_INFORMATION=0
P3_TEMPERATURE_THURSDAY_7=17.000000
P3_ENDTIME_THURSDAY_4=1440
BURST_RX=1
P2_TEMPERATURE_SATURDAY_13=17.000000
P3_TEMPERATURE_THURSDAY_1=17.000000
P2_TEMPERATURE_TUESDAY_9=17.000000
P2_ENDTIME_SATURDAY_1=1440
P2_ENDTIME_WEDNESDAY_12=1440
P1_ENDTIME_FRIDAY_9=1440
P1_ENDTIME_WEDNESDAY_5=1440
P3_TEMPERATURE_FRIDAY_5=17.000000
P2_TEMPERATURE_THURSDAY_6=17.000000
SENDE_WEATHER_DATA=1
P1_TEMPERATURE_FRIDAY_9=17.000000
P3_TEMPERATURE_THURSDAY_10=17.000000
P3_ENDTIME_SATURDAY_8=1440
P2_ENDTIME_TUESDAY_4=1440
P2_ENDTIME_FRIDAY_13=1440
P2_ENDTIME_THURSDAY_11=1440
P1_TEMPERATURE_TUESDAY_8=17.000000
P3_ENDTIME_SUNDAY_1=1440
P2_ENDTIME_WEDNESDAY_4=1440
P2_TEMPERATURE_WEDNESDAY_7=17.000000
P1_ENDTIME_TUESDAY_6=1440
P2_ENDTIME_SUNDAY_9=1440
P1_TEMPERATURE_SATURDAY_4=21.000000
P2_TEMPERATURE_TUESDAY_12=17.000000
P1_TEMPERATURE_WEDNESDAY_5=18.000000
P2_ENDTIME_SATURDAY_5=1440
P2_TEMPERATURE_WEDNESDAY_1=17.000000
P1_ENDTIME_SUNDAY_13=1440
P1_TEMPERATURE_FRIDAY_6=21.000000
P2_ENDTIME_TUESDAY_9=1440
P1_TEMPERATURE_TUESDAY_4=21.000000
P3_TEMPERATURE_WEDNESDAY_11=17.000000
P1_TEMPERATURE_THURSDAY_3=18.000000
P3_ENDTIME_SATURDAY_3=1440
P1_ENDTIME_FRIDAY_2=450
P2_ENDTIME_FRIDAY_8=1440
P2_TEMPERATURE_TUESDAY_11=17.000000
P2_TEMPERATURE_SUNDAY_6=17.000000
P3_TEMPERATURE_SATURDAY_11=17.000000
P1_ENDTIME_THURSDAY_5=1440
P3_ENDTIME_MONDAY_6=1440
P1_ENDTIME_WEDNESDAY_11=1440
P2_ENDTIME_TUESDAY_3=1440
P3_ENDTIME_FRIDAY_5=1440
P2_TEMPERATURE_TUESDAY_5=17.000000
P3_TEMPERATURE_THURSDAY_8=17.000000
P2_TEMPERATURE_THURSDAY_12=17.000000
P3_TEMPERATURE_THURSDAY_5=17.000000
PARTY_MODE_PRIORITIZATION=1
P2_ENDTIME_TUESDAY_12=1440
P1_TEMPERATURE_WEDNESDAY_6=17.000000
P2_ENDTIME_MONDAY_12=1440
P2_TEMPERATURE_SUNDAY_9=17.000000
CYCLIC_INFO_MSG_DIS=0
P2_ENDTIME_TUESDAY_8=1440
P2_TEMPERATURE_THURSDAY_1=17.000000
P1_TEMPERATURE_SATURDAY_6=17.000000
P2_TEMPERATURE_MONDAY_5=17.000000
P2_TEMPERATURE_WEDNESDAY_4=17.000000
P2_TEMPERATURE_THURSDAY_4=17.000000
P2_TEMPERATURE_THURSDAY_2=17.000000
P3_TEMPERATURE_TUESDAY_7=17.000000
P1_ENDTIME_SATURDAY_11=1440
P1_ENDTIME_SUNDAY_8=1440
P2_ENDTIME_SUNDAY_2=1440
P3_ENDTIME_WEDNESDAY_3=1440
P1_ENDTIME_THURSDAY_1=300
SHOW_SET_TEMPERATUR=0
P3_ENDTIME_MONDAY_4=1440
P3_ENDTIME_THURSDAY_7=1440
P3_ENDTIME_TUESDAY_7=1440
P2_ENDTIME_FRIDAY_5=1440
P3_TEMPERATURE_TUESDAY_5=17.000000
P3_ENDTIME_TUESDAY_3=1440
P1_ENDTIME_THURSDAY_3=1020
P2_ENDTIME_MONDAY_6=1440
P1_ENDTIME_MONDAY_3=750
P3_TEMPERATURE_SUNDAY_6=17.000000
P3_ENDTIME_FRIDAY_8=1440
P1_TEMPERATURE_SATURDAY_11=17.000000
P3_TEMPERATURE_SATURDAY_2=17.000000
P3_TEMPERATURE_SATURDAY_9=17.000000
P3_ENDTIME_TUESDAY_12=1440
P1_TEMPERATURE_MONDAY_6=21.000000
P3_ENDTIME_SUNDAY_2=1440
P2_TEMPERATURE_TUESDAY_7=17.000000
P1_TEMPERATURE_WEDNESDAY_12=17.000000
P3_TEMPERATURE_MONDAY_5=17.000000
P3_ENDTIME_TUESDAY_8=1440
P3_ENDTIME_MONDAY_12=1440
P3_TEMPERATURE_SUNDAY_9=17.000000
P1_ENDTIME_SUNDAY_5=1440
P1_ENDTIME_THURSDAY_8=1440
P1_ENDTIME_MONDAY_11=1440
P1_TEMPERATURE_SUNDAY_5=18.000000
P2_ENDTIME_TUESDAY_7=1440
P3_TEMPERATURE_SATURDAY_7=17.000000
P2_ENDTIME_THURSDAY_7=1440
P1_ENDTIME_MONDAY_7=1440
P2_ENDTIME_MONDAY_4=1440
P2_ENDTIME_WEDNESDAY_3=1440
P1_ENDTIME_MONDAY_10=1440
P1_TEMPERATURE_MONDAY_9=17.000000
P3_TEMPERATURE_THURSDAY_3=17.000000
P1_ENDTIME_FRIDAY_1=360
P2_TEMPERATURE_WEDNESDAY_9=17.000000
P2_TEMPERATURE_FRIDAY_5=17.000000
P1_ENDTIME_SATURDAY_7=1440
P3_ENDTIME_SATURDAY_1=1440
P3_ENDTIME_WEDNESDAY_12=1440
P3_TEMPERATURE_TUESDAY_9=17.000000
P3_ENDTIME_THURSDAY_11=1440
P1_ENDTIME_WEDNESDAY_2=420
P3_ENDTIME_FRIDAY_13=1440
P2_TEMPERATURE_WEDNESDAY_13=17.000000
P2_ENDTIME_SATURDAY_8=1440
P3_ENDTIME_TUESDAY_4=1440
P1_ENDTIME_WEDNESDAY_7=1440
P3_TEMPERATURE_THURSDAY_11=17.000000
P3_ENDTIME_SUNDAY_9=1440
P2_TEMPERATURE_SATURDAY_2=17.000000
P3_ENDTIME_WEDNESDAY_4=1440
P2_ENDTIME_SUNDAY_1=1440
P2_ENDTIME_SATURDAY_3=1440
P1_ENDTIME_WEDNESDAY_13=1440
P3_ENDTIME_TUESDAY_9=1440
P1_TEMPERATURE_THURSDAY_4=21.000000
P3_ENDTIME_SATURDAY_5=1440
P3_TEMPERATURE_SATURDAY_5=17.000000
P2_ENDTIME_SATURDAY_12=1440
P1_ENDTIME_WEDNESDAY_9=1440
P2_TEMPERATURE_WEDNESDAY_2=17.000000
P1_TEMPERATURE_SUNDAY_8=17.000000
P1_ENDTIME_TUESDAY_1=300
P3_ENDTIME_TUESDAY_2=1440
P3_TEMPERATURE_MONDAY_4=17.000000
P3_TEMPERATURE_SATURDAY_4=17.000000
P2_TEMPERATURE_SATURDAY_3=17.000000
P3_TEMPERATURE_THURSDAY_6=17.000000
P3_TEMPERATURE_MONDAY_8=17.000000
P3_TEMPERATURE_FRIDAY_13=17.000000
P1_ENDTIME_TUESDAY_11=1440
P2_TEMPERATURE_WEDNESDAY_12=17.000000
P2_ENDTIME_THURSDAY_13=1440
P2_TEMPERATURE_FRIDAY_2=17.000000
P2_TEMPERATURE_SUNDAY_10=17.000000
P1_TEMPERATURE_SUNDAY_4=21.000000
P1_TEMPERATURE_FRIDAY_12=17.000000
P1_ENDTIME_SATURDAY_6=1440
P3_TEMPERATURE_SUNDAY_7=17.000000
P2_ENDTIME_TUESDAY_10=1440
P2_TEMPERATURE_SUNDAY_1=17.000000
P2_TEMPERATURE_MONDAY_11=17.000000
P1_TEMPERATURE_TUESDAY_1=18.000000
P3_ENDTIME_MONDAY_13=1440
P1_TEMPERATURE_WEDNESDAY_2=21.000000
P3_TEMPERATURE_TUESDAY_12=17.000000
P2_TEMPERATURE_TUESDAY_6=17.000000
P1_TEMPERATURE_WEDNESDAY_13=17.000000
P2_ENDTIME_THURSDAY_4=1440
P1_TEMPERATURE_MONDAY_7=18.000000
P1_ENDTIME_MONDAY_1=360
P2_ENDTIME_SATURDAY_9=1440
P3_ENDTIME_SATURDAY_10=1440
P2_ENDTIME_THURSDAY_2=1440
P1_ENDTIME_SATURDAY_4=1080
SHOW_HUMIDITY=0
P2_TEMPERATURE_TUESDAY_10=17.000000
P3_TEMPERATURE_TUESDAY_2=17.000000
MODUS_BUTTON_LOCK=0
P2_ENDTIME_FRIDAY_4=1440
P1_ENDTIME_SATURDAY_2=660
P1_ENDTIME_THURSDAY_9=1440
P2_TEMPERATURE_THURSDAY_10=17.000000
P1_ENDTIME_FRIDAY_7=1440
P1_ENDTIME_FRIDAY_10=1440
P1_TEMPERATURE_MONDAY_3=18.000000
BUTTON_LOCK=0
P3_TEMPERATURE_FRIDAY_11=17.000000
P3_ENDTIME_TUESDAY_5=1440
P2_TEMPERATURE_SUNDAY_12=17.000000
P1_ENDTIME_SUNDAY_6=1440
P1_ENDTIME_FRIDAY_11=1440
P3_ENDTIME_FRIDAY_12=1440
P2_ENDTIME_THURSDAY_6=1440
P3_TEMPERATURE_SUNDAY_3=17.000000
P1_TEMPERATURE_THURSDAY_12=17.000000
P1_TEMPERATURE_FRIDAY_1=18.000000
P2_ENDTIME_SUNDAY_3=1440
P1_ENDTIME_SATURDAY_13=1440
P2_ENDTIME_SUNDAY_10=1440
P2_ENDTIME_SUNDAY_7=1440
P1_ENDTIME_SUNDAY_4=1080
P1_TEMPERATURE_SUNDAY_2=21.000000
P1_TEMPERATURE_FRIDAY_10=17.000000
P2_TEMPERATURE_FRIDAY_4=17.000000
P3_TEMPERATURE_WEDNESDAY_12=17.000000
CYCLIC_INFO_MSG=1
P1_TEMPERATURE_TUESDAY_3=18.000000
P3_TEMPERATURE_WEDNESDAY_4=17.000000
P1_ENDTIME_WEDNESDAY_10=1440
P1_ENDTIME_FRIDAY_3=750
P3_ENDTIME_MONDAY_8=1440
P2_TEMPERATURE_FRIDAY_8=17.000000
P2_TEMPERATURE_MONDAY_13=17.000000
P1_ENDTIME_THURSDAY_12=1440
P3_ENDTIME_WEDNESDAY_1=1440
P2_ENDTIME_MONDAY_5=1440
P2_ENDTIME_SUNDAY_11=1440
P2_ENDTIME_FRIDAY_6=1440
P3_TEMPERATURE_MONDAY_2=17.000000
P2_TEMPERATURE_SATURDAY_5=17.000000
P3_ENDTIME_MONDAY_10=1440
P2_ENDTIME_THURSDAY_1=1440
P3_ENDTIME_MONDAY_7=1440
P3_TEMPERATURE_SUNDAY_5=17.000000
P3_TEMPERATURE_MONDAY_9=17.000000
P3_TEMPERATURE_TUESDAY_11=17.000000
P1_ENDTIME_TUESDAY_8=1440
P1_TEMPERATURE_MONDAY_5=18.000000
P2_ENDTIME_SUNDAY_8=1440
P2_ENDTIME_SATURDAY_11=1440
P1_ENDTIME_SUNDAY_2=660
P3_ENDTIME_MONDAY_11=1440
P3_TEMPERATURE_TUESDAY_10=17.000000
P3_ENDTIME_THURSDAY_8=1440
P3_ENDTIME_SUNDAY_5=1440
P1_TEMPERATURE_SUNDAY_9=17.000000
P1_ENDTIME_MONDAY_12=1440
P3_TEMPERATURE_SATURDAY_1=17.000000
TEMPERATURE_MAXIMUM=30.500000
P2_TEMPERATURE_SATURDAY_8=17.000000
P2_TEMPERATURE_THURSDAY_8=17.000000
P1_TEMPERATURE_THURSDAY_6=17.000000
P1_TEMPERATURE_THURSDAY_1=18.000000
P3_TEMPERATURE_MONDAY_6=17.000000
BOOST_TIME_PERIOD=1
P1_ENDTIME_TUESDAY_12=1440
P2_ENDTIME_WEDNESDAY_11=1440
P3_ENDTIME_THURSDAY_3=1440
MANU_MODE_PRIORITIZATION=1
P1_ENDTIME_TUESDAY_3=1020
P1_TEMPERATURE_TUESDAY_5=18.000000
P2_ENDTIME_FRIDAY_2=1440
P1_ENDTIME_FRIDAY_8=1440
P1_TEMPERATURE_SUNDAY_6=17.000000
P3_ENDTIME_MONDAY_3=1440
P2_ENDTIME_THURSDAY_5=1440
P1_ENDTIME_TUESDAY_9=1440
P2_TEMPERATURE_TUESDAY_4=17.000000
P3_ENDTIME_WEDNESDAY_13=1440
P3_TEMPERATURE_SATURDAY_10=17.000000
P2_TEMPERATURE_THURSDAY_11=17.000000
P1_ENDTIME_SATURDAY_5=1440
P2_ENDTIME_SUNDAY_13=1440
P2_TEMPERATURE_FRIDAY_6=17.000000
P1_TEMPERATURE_TUESDAY_10=17.000000
P1_TEMPERATURE_SATURDAY_12=17.000000
P2_TEMPERATURE_SATURDAY_4=17.000000
P3_ENDTIME_WEDNESDAY_7=1440
P1_ENDTIME_WEDNESDAY_4=1200
P2_ENDTIME_TUESDAY_6=1440
P2_TEMPERATURE_WEDNESDAY_5=17.000000
P1_ENDTIME_SUNDAY_9=1440
TEMPERATURE_MINIMUM=4.500000
P1_ENDTIME_FRIDAY_13=1440
P1_ENDTIME_THURSDAY_11=1440
P3_ENDTIME_WEDNESDAY_2=1440
P2_TEMPERATURE_TUESDAY_8=17.000000
P2_TEMPERATURE_FRIDAY_9=17.000000
P3_TEMPERATURE_WEDNESDAY_13=17.000000
TEMPERATURE_LOWERING=17.000000
P3_TEMPERATURE_THURSDAY_4=17.000000
P1_TEMPERATURE_SATURDAY_9=17.000000
P1_ENDTIME_TUESDAY_4=1200
P1_ENDTIME_WEDNESDAY_12=1440
P1_ENDTIME_SATURDAY_1=480
P3_TEMPERATURE_WEDNESDAY_5=17.000000
P2_ENDTIME_FRIDAY_9=1440
LOCAL_RESET_DISABLE=0
P3_ENDTIME_SATURDAY_7=1440
P2_ENDTIME_WEDNESDAY_5=1440
P3_TEMPERATURE_THURSDAY_2=17.000000
P3_ENDTIME_FRIDAY_1=1440
P1_TEMPERATURE_TUESDAY_9=17.000000
TEMPERATURE_OFFSET=7
P3_TEMPERATURE_MONDAY_7=17.000000
TEMPERATURE_COMFORT=21.000000
P1_TEMPERATURE_SATURDAY_2=21.000000
P2_ENDTIME_MONDAY_9=1440
P2_TEMPERATURE_SUNDAY_11=17.000000
P1_ENDTIME_SATURDAY_10=1440
P2_TEMPERATURE_MONDAY_1=17.000000
P3_ENDTIME_MONDAY_1=1440
P1_TEMPERATURE_SUNDAY_7=17.000000
P2_ENDTIME_TUESDAY_13=1440
P3_TEMPERATURE_FRIDAY_12=17.000000
P3_ENDTIME_SATURDAY_6=1440
P1_ENDTIME_MONDAY_13=1440
P3_TEMPERATURE_TUESDAY_1=17.000000
P2_TEMPERATURE_FRIDAY_3=17.000000
P2_TEMPERATURE_THURSDAY_5=17.000000
P1_TEMPERATURE_THURSDAY_11=17.000000
P3_ENDTIME_TUESDAY_11=1440
P1_TEMPERATURE_FRIDAY_13=17.000000
P1_TEMPERATURE_MONDAY_8=17.000000
P3_TEMPERATURE_SUNDAY_4=17.000000
P1_TEMPERATURE_THURSDAY_2=21.000000
P2_ENDTIME_WEDNESDAY_8=1440
P1_ENDTIME_TUESDAY_2=420
P3_ENDTIME_TUESDAY_1=1440
P3_TEMPERATURE_SUNDAY_8=17.000000
P3_ENDTIME_WEDNESDAY_9=1440
P1_TEMPERATURE_MONDAY_4=21.000000
P2_TEMPERATURE_MONDAY_10=17.000000
P3_ENDTIME_THURSDAY_12=1440
P1_ENDTIME_WEDNESDAY_1=300
P2_ENDTIME_MONDAY_2=1440
P1_ENDTIME_MONDAY_8=1440
P3_ENDTIME_FRIDAY_3=1440
P3_ENDTIME_WEDNESDAY_10=1440
P2_TEMPERATURE_THURSDAY_3=17.000000
P1_TEMPERATURE_SATURDAY_13=17.000000
P3_TEMPERATURE_TUESDAY_3=17.000000
P3_TEMPERATURE_SATURDAY_8=17.000000
P1_TEMPERATURE_MONDAY_2=21.000000
P2_ENDTIME_SUNDAY_12=1440
P3_ENDTIME_SUNDAY_4=1440
P3_TEMPERATURE_TUESDAY_13=17.000000
P2_TEMPERATURE_SUNDAY_13=17.000000
P3_ENDTIME_SATURDAY_13=1440
P3_TEMPERATURE_FRIDAY_10=17.000000
P3_TEMPERATURE_SUNDAY_2=17.000000
P1_ENDTIME_FRIDAY_12=1440
P3_ENDTIME_FRIDAY_11=1440
P2_ENDTIME_WEDNESDAY_6=1440
P2_TEMPERATURE_WEDNESDAY_3=17.000000
P3_ENDTIME_SUNDAY_6=1440
P2_TEMPERATURE_FRIDAY_7=17.000000
P1_TEMPERATURE_SATURDAY_7=17.000000
P1_TEMPERATURE_THURSDAY_13=17.000000
LOW_BAT_LIMIT=2.200000
P3_TEMPERATURE_FRIDAY_1=17.000000
P1_TEMPERATURE_SUNDAY_3=18.000000
P2_TEMPERATURE_MONDAY_12=17.000000
P1_TEMPERATURE_TUESDAY_2=21.000000
P3_ENDTIME_SATURDAY_4=1440
P1_ENDTIME_TUESDAY_5=1440
P1_TEMPERATURE_FRIDAY_11=17.000000
P3_TEMPERATURE_MONDAY_3=17.000000
P1_TEMPERATURE_WEDNESDAY_8=17.000000
P3_ENDTIME_FRIDAY_10=1440
P3_ENDTIME_FRIDAY_7=1440
P3_ENDTIME_THURSDAY_9=1440
P3_ENDTIME_SATURDAY_2=1440
P2_ENDTIME_THURSDAY_10=1440
bei einem HM-CC-RT-DN sieht es so aus, also so wie es auch aussehen soll:
defmod BAD_Heizung HMCCUDEV OEQ0241589
attr BAD_Heizung userattr weekprofile
attr BAD_Heizung IODev d_ccu
attr BAD_Heizung ccureadingfilter (TEMPERATURE|VALVE_STATE|CONTROL|BATTERY_STATE)
attr BAD_Heizung cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr BAD_Heizung controldatapoint 4.SET_TEMPERATURE
attr BAD_Heizung event-on-change-reading .*
attr BAD_Heizung eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
attr BAD_Heizung hmstatevals FAULT_REPORTING!1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve_error_pos
attr BAD_Heizung icon hm-cc-rt-dn
attr BAD_Heizung room Homematic
attr BAD_Heizung statedatapoint 4.SET_TEMPERATURE
attr BAD_Heizung stripnumber 1
attr BAD_Heizung substexcl control
attr BAD_Heizung substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on;;FAULT_REPORTING!0:no,1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve:error_pos
attr BAD_Heizung webCmd control:Auto:Manu:Boost:on:off
attr BAD_Heizung weekprofile BAD_Winter
attr BAD_Heizung widgetOverride control:slider,4.5,0.5,30.5,1
setstate BAD_Heizung 21.0
setstate BAD_Heizung 2019-11-21 19:34:09 4.ACTUAL_TEMPERATURE 21.5
setstate BAD_Heizung 2019-11-21 19:34:09 4.BATTERY_STATE 3.2
setstate BAD_Heizung 2019-11-21 19:34:09 4.CONTROL_MODE AUTO
setstate BAD_Heizung 2019-11-21 19:34:09 4.PARTY_TEMPERATURE 5.0
setstate BAD_Heizung 2019-11-21 19:34:09 4.SET_TEMPERATURE 21.0
setstate BAD_Heizung 2019-11-21 19:34:09 4.VALVE_STATE 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-ADAPTIVE_REGULATION 2
setstate BAD_Heizung 2019-11-21 06:46:26 R-BACKLIGHT_ON_TIME 10
setstate BAD_Heizung 2019-11-21 06:46:26 R-BOOST_AFTER_WINDOW_OPEN 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-BOOST_POSITION 80
setstate BAD_Heizung 2019-11-21 06:46:26 R-BOOST_TIME_PERIOD 1
setstate BAD_Heizung 2019-11-21 06:46:26 R-BURST_RX 1
setstate BAD_Heizung 2019-11-21 06:46:26 R-BUTTON_LOCK 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-BUTTON_RESPONSE_WITHOUT_BACKLIGHT 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-CYCLIC_INFO_MSG 1
setstate BAD_Heizung 2019-11-21 06:46:26 R-CYCLIC_INFO_MSG_DIS 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-DAYLIGHT_SAVING_TIME 1
setstate BAD_Heizung 2019-11-21 06:46:26 R-DECALCIFICATION_TIME 660
setstate BAD_Heizung 2019-11-21 06:46:26 R-DECALCIFICATION_WEEKDAY 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-DISPLAY_INFORMATION 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_1 360
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_2 450
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_3 750
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_4 840
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_5 1050
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_6 1260
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_7 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_FRIDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_1 360
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_2 450
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_3 750
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_4 840
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_5 1050
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_6 1260
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_7 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_MONDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_1 540
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_2 660
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_3 900
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_4 1080
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_5 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_6 1200
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_7 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SATURDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_1 540
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_2 660
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_3 900
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_4 1080
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_5 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_6 1200
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_7 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_SUNDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_1 300
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_2 420
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_3 1020
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_4 1200
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_5 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_6 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_7 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_THURSDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_1 300
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_2 420
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_3 1020
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_4 1200
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_5 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_6 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_7 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_TUESDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_1 300
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_10 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_11 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_12 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_13 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_2 420
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_3 1020
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_4 1200
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_5 1440
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_6 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_7 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_8 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-ENDTIME_WEDNESDAY_9 5
setstate BAD_Heizung 2019-11-21 06:46:26 R-GLOBAL_BUTTON_LOCK 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-I_VALUE_EXTERN 16
setstate BAD_Heizung 2019-11-21 06:46:26 R-I_VALUE_INTERN 15
setstate BAD_Heizung 2019-11-21 06:46:26 R-LOCAL_RESET_DISABLE 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-LOW_BAT_LIMIT 2.1
setstate BAD_Heizung 2019-11-21 06:46:26 R-MANU_MODE_PRIORITIZATION 1
setstate BAD_Heizung 2019-11-21 06:46:26 R-MIN_MAX_VALUE_NOT_RELEVANT_FOR_MANU_MODE 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-MODUS_BUTTON_LOCK 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-PARTY_MODE_PRIORITIZATION 1
setstate BAD_Heizung 2019-11-21 06:46:26 R-P_START_VALUE_EXTERN 35
setstate BAD_Heizung 2019-11-21 06:46:26 R-P_START_VALUE_INTERN 30
setstate BAD_Heizung 2019-11-21 06:46:26 R-P_VALUE_EXTERN 31
setstate BAD_Heizung 2019-11-21 06:46:26 R-P_VALUE_INTERN 30
setstate BAD_Heizung 2019-11-21 06:46:26 R-SHOW_WEEKDAY 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATUREFALL_MODUS 0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATUREFALL_VALUE 1.4
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATUREFALL_WINDOW_OPEN 12.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATUREFALL_WINDOW_OPEN_TIME_PERIOD 15
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_COMFORT 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_6 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_7 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_FRIDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_LOWERING 17.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MAXIMUM 30.5
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MINIMUM 4.5
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_6 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_7 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_MONDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_OFFSET 7
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_6 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_7 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SATURDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_6 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_7 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_SUNDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_6 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_7 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_THURSDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_6 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_7 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_TUESDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_1 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_10 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_11 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_12 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_13 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_2 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_3 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_4 21.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_5 18.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_6 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_7 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_8 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-TEMPERATURE_WEDNESDAY_9 5.0
setstate BAD_Heizung 2019-11-21 06:46:26 R-VALVE_ERROR_RUN_POSITION 15
setstate BAD_Heizung 2019-11-21 06:46:26 R-VALVE_MAXIMUM_POSITION 100
setstate BAD_Heizung 2019-11-21 06:46:26 R-VALVE_OFFSET 0
setstate BAD_Heizung 2019-11-21 19:34:09 control 21.0
setstate BAD_Heizung 2019-11-21 19:34:09 hmstate 21.0
setstate BAD_Heizung 2019-11-21 19:34:09 state 21.0
Greetings Gordon
Hallo Gemeinde,
falls das besser als neues Thema richtig wäre, bitte Bescheid geben (auch wo es dann richtig wäre).
Mein Problem bzw. Wunsch:
Ich habe den Rollladen-Aktor HM-LC-Bl1PBU-FM jetzt von dem CUL_HM (hmLGW) neu über die CCU3 als HMCCUDEV angelegt.
Was nicht mehr geht oder wo mir die Idee zur Lösung fehlt ist eine Eintasten-Steuerung (welches ein "toggle" benötigt), wie es als CUL_HM super ging.
Dies geht nicht, weil es kein Status "up" und "down2 gibt (ist nicht im 1.LEVEL enthalten) und es gibt auch kein "toggle".
Ich hätte aber gern wieder ein devStateIcon, welches die aktuelle Richtung anzeigt wenn das Rolle in Bewegung ist.
Sprich ich brauchte als State so wie früher die Vereinigung von 1.DIRECTION und 1.LEVEL als STATE.
Dummerweise ändert sich auch der STATE solange nicht, bis ein stop kommt.
Mit Vereinigung von 1.DIRECTION und 1.LEVEL als STATE hätte man:
- wenn es unten ist ein "none.closed"
- wenn es oben ist ein "none.open"
- wenn es gerade nach poben fährt ein "up.IRGENDWAS"
- wenn es gerade nach nten fährt ein "down.IRGENDWAS"
Damit könnte man den aktuellen Status wieder wunderbar als "devStateIcon" definieren.
Wenn es jetzt noch ein "toggle" wie als CUL_HM-Device gäbe, was ein runter erzeugt, wenn das Rollo zuletzt hochgefahren ist und umgekehrt, könnte man wieder eine Eintasten-Steuerung (nur Klicks auf das "devStateIcon") konfigurieren.
Hat jemand einen Ansatz für einen Lösungsweg?
Hier noch meine aktuelle Device-Definition:
defmod HM_RS_KU_FT HMCCUDEV OEQ0891757
attr HM_RS_KU_FT IODev d_ccu
attr HM_RS_KU_FT alias Rollo Küche Fenster
attr HM_RS_KU_FT ccureadingfilter (LEVEL|INHIBIT|DIRECTION|WORKING)
attr HM_RS_KU_FT ccuscaleval LEVEL:0:1:0:100
attr HM_RS_KU_FT cmdIcon up:fts_shutter_up down:fts_shutter_down stop:fts_shutter_manual
attr HM_RS_KU_FT controldatapoint 1.LEVEL
attr HM_RS_KU_FT devStateIcon open:fts_shutter_10@green:down closed:fts_shutter_100@black:up 9\d.*:fts_shutter_10:down 8\d.*:fts_shutter_20:down 7\d.*:fts_shutter_30:down 6\d.*:fts_shutter_40:down 5\d.*:fts_shutter_50:down 4\d.*:fts_shutter_60:up 3\d.*:fts_shutter_70:up 2\d.*:fts_shutter_80:up 1\d.*:fts_shutter_90:up [0-9].*:fts_shutter_100:up up.*:fts_shutter_up@red:stop down.*:fts_shutter_down@red:stop .*:fts_shutter_updown@red
attr HM_RS_KU_FT eventMap /datapoint 1.STOP true:stop/datapoint 1.LEVEL 0:down/datapoint 1.LEVEL 100:up/
attr HM_RS_KU_FT group Rollos
attr HM_RS_KU_FT room Rollos,System_Homatic
attr HM_RS_KU_FT sortby 112
attr HM_RS_KU_FT statedatapoint 1.LEVEL
attr HM_RS_KU_FT substexcl control
attr HM_RS_KU_FT substitute LEVEL!#0-0:closed,#100-100:open;;DIRECTION!0:none,1:up,2:down,3:undefined;;WORKING!(0|false):no,(1|true):yes
attr HM_RS_KU_FT webCmd up:down:stop:control
attr HM_RS_KU_FT widgetOverride control:slider,0,10,100
@BM030:
Die Wochenprogramme sind Config-Parameter. Die werden von der CCU nicht automatisch aktualisiert. Du musst sie explizit mit "get config" abfragen. Wenn das regelmäßig passieren soll, am besten "at" verwenden.
@Ralf-F:
Um mehrere Readings in state zu bekommen, kannst Du das Standardattribut "stateFormat" verwenden. Beispiel:
attr xy stateFormat 1.DIRECTION.1.LEVEL
Der "toggle" Befehl erscheint automatisch, sobald Du das Attribut "statevals" setzt. Bei einem Rollladen z.B.
attr xy statevals up:100,down:0
Der Toggle Befehl schaltet dann den Datenpunkt, der im Attribut "statedatapoint" angegeben ist, zwischen den Statevals um.
Anmerkung: statevals unterstützt auch mehr als 2 Zustände. Bei jedem Toggle werden sie der Reihe nach durchgeschaltet.
Hallo zap,
wenn ich das Attribut "stateFormat 1.DIRECTION.1.LEVEL" setze, wird STATE dauerhaft auf den String "1.DIRECTION.1.LEVEL" gesetzt und nicht wie erwartet auf z.B. "none.40".
Ich habe mal "stateFormat 1.DIRECTION/1.LEVEL" getestet, was dann auch den gewünschten Erfolg mit STATE z.B. "none/40" hat.
Verdammt, Dein Vorschlag hatte ich schon vor meiner Frage im Forum getestet. Wäre ich nur eher auf die Variante mit z.B. einen Schrägstrich statt Punkt gekommen >:(
Dann habe ich noch bei substitude "... DIRECTION!0:none ..." in "... DIRECTION!0:stop ..." geändert.
Damit ist dann STATE z.B. "stop/40", "up/irgendwas/", ...
Sehr schön :). Warum das mit dem Punkt in sateFormat zwischen den beiden Readings nicht klappt, ist mir vollkommen unklar.
Bleibt noch das toggle was leider auch mit "statevals up:100,down:0" nicht klappt.
In der Doku steht das Beispiel ja auch drin. Aber bei einem "set HM_RS_KU_FT toggle" kommt dann die Meldung: "HMCCUDEV: HM_RS_KU_FT Current device state doesn't match statevals".
Muss man da noch was mit eventMap machen?
Da es hier um Beispiele für Gerätekonfigurationen geht, hier dann die aktuelle (ohne toggle) soweit funktionierende Definition:
defmod HM_RS_KU_FT HMCCUDEV OEQ0891757
attr HM_RS_KU_FT IODev d_ccu
attr HM_RS_KU_FT alias Rollo Küche Fenster
attr HM_RS_KU_FT ccureadingfilter (LEVEL|INHIBIT|DIRECTION|WORKING)
attr HM_RS_KU_FT ccuscaleval LEVEL:0:1:0:100
attr HM_RS_KU_FT cmdIcon up:fts_shutter_up down:fts_shutter_down stop:fts_shutter_manual
attr HM_RS_KU_FT controldatapoint 1.LEVEL
attr HM_RS_KU_FT devStateIcon stop/open:fts_shutter_10@green:down stop/closed:fts_shutter_100@black:up stop/9\d.*:fts_shutter_10:down stop/8\d.*:fts_shutter_20:down stop/7\d.*:fts_shutter_30:down stop/6\d.*:fts_shutter_40:down stop/5\d.*:fts_shutter_50:down stop/4\d.*:fts_shutter_60:up stop/3\d.*:fts_shutter_70:up stop/2\d.*:fts_shutter_80:up stop/1\d.*:fts_shutter_90:up stop/[0-9].*:fts_shutter_100:up up.*:fts_shutter_up@red:stop down.*:fts_shutter_down@red:stop .*:fts_shutter_updown@red
attr HM_RS_KU_FT eventMap /datapoint 1.STOP true:stop/datapoint 1.LEVEL 0:down/datapoint 1.LEVEL 100:up/
attr HM_RS_KU_FT room System_Homatic
attr HM_RS_KU_FT stateFormat 1.DIRECTION/1.LEVEL
attr HM_RS_KU_FT statedatapoint 1.LEVEL
attr HM_RS_KU_FT statevals up:100,down:0
attr HM_RS_KU_FT substexcl control
attr HM_RS_KU_FT substitute LEVEL!#0-0:closed,#100-100:open;;DIRECTION!0:stop,1:up,2:down,3:undefined;;WORKING!(0|false):no,(1|true):yes
attr HM_RS_KU_FT webCmd up:down:stop:control
attr HM_RS_KU_FT widgetOverride control:slider,0,10,100
Das geht dann leider nicht mit dem Toggle. Es wird "state" mit dem neun Level verglichen. Da in state aber Direction/Level drin steht, kann das nicht gehen. Da muss ich toggle mal etwas anpassen
Hallo,
wie wird ein 4-fach Wandtaster HM-PB-4-WM definiert?
Danke und Gruß,
Kurt
Ich würde für jeden Kanal, den Du auswerten möchtest, ein HMCCUCHN Device definieren. Als Parameter für den define Befehl verwendest Du entweder die Kanaladresse oder den Kanalnamen.
Dann setzt Du noch folgende Attribute:
ccureadingfilter PRESS
statevals PRESS:true
statedatapoint PRESS_SHORT oder PRESS_LONG
substitute PRESS_SHORT,PRESS_LONG,PRESS_CONT!(1|true):pressed
event-on-update-reading PRESS
Zitat von: Kurt77 am 05 Januar 2020, 16:35:21
Hallo,
wie wird ein 4-fach Wandtaster HM-PB-4-WM definiert?
Danke und Gruß,
Kurt
Hallo Kurt,
Ich machen es mit meinen RFID Kartenlesern auch so wie von ZAP beschrieben. Je Kanal ein HMCCUCHN.
zu:
ZitatDas geht dann leider nicht mit dem Toggle. Es wird "state" mit dem neun Level verglichen. Da in state aber Direction/Level drin steht, kann das nicht gehen. Da muss ich toggle mal etwas anpassen
Danke, dann warte ich mal.
Das ging aber auch nicht, als in State nur der LEVEL stand.
Weiß man, wie man den Punkt so zwischen 1.Direction.1.LEVEL Quoten kann. Das ist eine reine Interessenfrage. Der Schrägstich statt Punkt ist ja sonst auch OK.
Danke Ralf
--
Hallo zusammen ich habe mal eine frage hat jemand erfahrung schon mit homematic wired ip ich habe sämtliche gerätschaften in Fhem die alle auch gut funktionieren. Jetzt habe ich eine HmIPW-DRI32 in fhem eingebunden bzw nur einen taster define WZ_PC_Taster2 HMCCUDEV 001718A9A77FB9 29
setuuid WZ_PC_Taster2 5e244793-f33f-86f8-b05e-c0aa165276312036
attr WZ_PC_Taster2 IODev ccu
attr WZ_PC_Taster2 ccureadingfilter (LOWBAT|UNREACH|PRESS)
attr WZ_PC_Taster2 ccureadingformat datapoint
attr WZ_PC_Taster2 ccureadings 1
attr WZ_PC_Taster2 event-on-update-reading .*
attr WZ_PC_Taster2 room Taster
attr WZ_PC_Taster2 statechannel 29
attr WZ_PC_Taster2 statedatapoint PRESS_SHORT
attr WZ_PC_Taster2 statevals press:true
attr WZ_PC_Taster2 substitute 1|true:pressed
damit lass ich ein unterprogramm laufen das auf das reading reagiert.Das funktioniert auch einwandfrei.
Jetzt wollte ich einen zweiten taster einfügen in der gleichen art nur leider bekomme ich keine readings rein.
Egal welchen chanel ich nehem von den 32 Eingängen ich habe nur den WZ_PC_Taster2 zum laufen gebracht hat jemand eine idee an was das liegen könnte?
Direktverknüpfungen habe ich auch schon mal gelöscht hat leider auch kein erfolg gebracht.
CHN 001718A9A77FB1:0 Eingang_2:0
DPT {f} HmIP-RF.001718A9A77FB1:0.ACTUAL_TEMPERATURE = 33.000000 [RE]
DPT {b} HmIP-RF.001718A9A77FB1:0.CONFIG_PENDING = false [RE]
DPT {n} HmIP-RF.001718A9A77FB1:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.001718A9A77FB1:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.001718A9A77FB1:0.ERROR_UNDERVOLTAGE = false [RE]
DPT {b} HmIP-RF.001718A9A77FB1:0.IDENTIFICATION_MODE_KEY_VISUAL = [W]
DPT {b} HmIP-RF.001718A9A77FB1:0.IDENTIFICATION_MODE_LCD_BACKLIGHT = [W]
DPT {f} HmIP-RF.001718A9A77FB1:0.IDENTIFY_DURATION = [W]
DPT {f} HmIP-RF.001718A9A77FB1:0.IDENTIFY_TARGET_LEVEL = [W]
DPT {b} HmIP-RF.001718A9A77FB1:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.001718A9A77FB1:0.OPERATING_VOLTAGE = 24.200000 [RE]
DPT {i} HmIP-RF.001718A9A77FB1:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {b} HmIP-RF.001718A9A77FB1:0.UNREACH = false [RE]
DPT {b} HmIP-RF.001718A9A77FB1:0.UPDATE_PENDING = false [RE]
CHN 001718A9A77FB1:1 HmIPW-DRI32 001718A9A77FB1:1
DPT {b} HmIP-RF.001718A9A77FB1:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:1.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:1.STATE = false [RE]
CHN 001718A9A77FB1:2 HmIPW-DRI32 001718A9A77FB1:2
DPT {b} HmIP-RF.001718A9A77FB1:2.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:2.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:2.STATE = false [RE]
CHN 001718A9A77FB1:3 HmIPW-DRI32 001718A9A77FB1:3
DPT {b} HmIP-RF.001718A9A77FB1:3.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:3.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:3.STATE = false [RE]
CHN 001718A9A77FB1:4 HmIPW-DRI32 001718A9A77FB1:4
DPT {b} HmIP-RF.001718A9A77FB1:4.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:4.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:4.STATE = false [RE]
CHN 001718A9A77FB1:5 Kind1_Rollo_Rauf
DPT {b} HmIP-RF.001718A9A77FB1:5.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:5.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:5.STATE = false [RE]
CHN 001718A9A77FB1:6 Kind1_Rollo_Runter
DPT {b} HmIP-RF.001718A9A77FB1:6.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:6.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:6.STATE = false [RE]
CHN 001718A9A77FB1:7 Kind1_Taster
DPT {b} HmIP-RF.001718A9A77FB1:7.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:7.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:7.STATE = false [RE]
CHN 001718A9A77FB1:8 HmIPW-DRI32 001718A9A77FB1:8
DPT {b} HmIP-RF.001718A9A77FB1:8.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:8.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:8.STATE = false [RE]
CHN 001718A9A77FB1:9 Wohnzimmer_Esszimmer_Taster
DPT {b} HmIP-RF.001718A9A77FB1:9.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:9.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:9.STATE = false [RE]
CHN 001718A9A77FB1:10 Wohnzimmer_Hauptlicht_Taster_Esszimmer
DPT {b} HmIP-RF.001718A9A77FB1:10.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:10.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:10.STATE = false [RE]
CHN 001718A9A77FB1:11 Eszimmer_Tisch_Taster
DPT {b} HmIP-RF.001718A9A77FB1:11.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:11.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:11.STATE = false [RE]
CHN 001718A9A77FB1:12 Keller_Taster
DPT {b} HmIP-RF.001718A9A77FB1:12.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:12.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:12.STATE = false [RE]
CHN 001718A9A77FB1:13 Treppenhauptlicht_Taster_unten
DPT {b} HmIP-RF.001718A9A77FB1:13.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:13.PRESS_SHORT = false [E]
DPT {b} HmIP-RF.001718A9A77FB1:13.STATE = false [RE]
CHN 001718A9A77FB1:14 HmIPW-DRI32 001718A9A77FB1:14
DPT {b} HmIP-RF.001718A9A77FB1:14.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:14.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:14.STATE = false [RE]
CHN 001718A9A77FB1:15 HmIPW-DRI32 001718A9A77FB1:15
DPT {b} HmIP-RF.001718A9A77FB1:15.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:15.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:15.STATE = false [RE]
CHN 001718A9A77FB1:16 Waschkueche_Taster2
DPT {b} HmIP-RF.001718A9A77FB1:16.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:16.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:16.STATE = false [RE]
CHN 001718A9A77FB1:17 HmIPW-DRI32 001718A9A77FB1:17
DPT {b} HmIP-RF.001718A9A77FB1:17.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:17.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:17.STATE = false [RE]
CHN 001718A9A77FB1:18 Taster_Kind2
DPT {b} HmIP-RF.001718A9A77FB1:18.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:18.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:18.STATE = false [RE]
CHN 001718A9A77FB1:19 HmIPW-DRI32 001718A9A77FB1:19
DPT {b} HmIP-RF.001718A9A77FB1:19.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:19.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:19.STATE = false [RE]
CHN 001718A9A77FB1:20 HmIPW-DRI32 001718A9A77FB1:20
DPT {b} HmIP-RF.001718A9A77FB1:20.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:20.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:20.STATE = false [RE]
CHN 001718A9A77FB1:21 HmIPW-DRI32 001718A9A77FB1:21
DPT {b} HmIP-RF.001718A9A77FB1:21.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:21.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:21.STATE = false [RE]
CHN 001718A9A77FB1:22 Kind2_Rollo_Rauf
DPT {b} HmIP-RF.001718A9A77FB1:22.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:22.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:22.STATE = false [RE]
CHN 001718A9A77FB1:23 Kind2_Rollo_Runder
DPT {b} HmIP-RF.001718A9A77FB1:23.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:23.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:23.STATE = false [RE]
CHN 001718A9A77FB1:24 Technikraum_Schalter
DPT {b} HmIP-RF.001718A9A77FB1:24.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:24.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:24.STATE = false [RE]
CHN 001718A9A77FB1:25 001718A9A77FB1:25
DPT {b} HmIP-RF.001718A9A77FB1:25.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:25.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:25.STATE = false [RE]
CHN 001718A9A77FB1:26 001718A9A77FB1:26
DPT {b} HmIP-RF.001718A9A77FB1:26.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:26.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:26.STATE = false [RE]
CHN 001718A9A77FB1:27 PC_Taster
DPT {b} HmIP-RF.001718A9A77FB1:27.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:27.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:27.STATE = false [RE]
CHN 001718A9A77FB1:28 Carboard_Licht_Taster
DPT {b} HmIP-RF.001718A9A77FB1:28.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:28.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:28.STATE = false [RE]
CHN 001718A9A77FB1:29 Waschkueche_Taster
DPT {b} HmIP-RF.001718A9A77FB1:29.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:29.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:29.STATE = false [RE]
CHN 001718A9A77FB1:30 Bewegungsmelder_Treppe_oben
DPT {b} HmIP-RF.001718A9A77FB1:30.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:30.PRESS_SHORT = false [E]
DPT {b} HmIP-RF.001718A9A77FB1:30.STATE = false [RE]
CHN 001718A9A77FB1:31 HmIPW-DRI32 001718A9A77FB1:31
DPT {b} HmIP-RF.001718A9A77FB1:31.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:31.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:31.STATE = false [RE]
CHN 001718A9A77FB1:32 HmIPW-DRI32 001718A9A77FB1:32
DPT {b} HmIP-RF.001718A9A77FB1:32.PRESS_LONG = [E]
DPT {b} HmIP-RF.001718A9A77FB1:32.PRESS_SHORT = [E]
DPT {b} HmIP-RF.001718A9A77FB1:32.STATE = false [RE]
Devicelist habe ich auch schon mehrer mal durchgefüht
Gruß Simon
Um einen einzigen Schaltkanal einzubinden (hier der Kanal 2), kannst Du so vorgehen
define meinTaster2 HMCCUCHN 001718A9A77FB1:2
attr meinTaster2 ccureadingfilter (LOWBAT|UNREACH|PRESS)
attr meinTaster2 ccureadingformat datapoint
attr WZ_PC_Taster2 statedatapoint PRESS_SHORT
attr WZ_PC_Taster2 statevals press:true
attr WZ_PC_Taster2 substitute 1|true:pressed
Du gibst also die Kanaladresse an. Würdest Du hingegen HMCCUDEV nehmen, müsstest Du die Deviceadresse angeben (001718A9A77FB1).
Bei Mehrfachschaltern ist das aber nicht zu empfehlen. Schließlich willst Du vermutlich die einzelnen Kanäle unterschiedlich verwenden.
Wenn die CCU keine Events schickt, hast Du vermutlich in der CCU keine Dummy Verknüpfung oder ein Dummy Programm angelegt. Ich bevorzuge Programme. Du fragst also in einem CCU Programm ab, ob der Kanal 001718A9A77FB1:2 gedrückt wurde. Als Reaktion setzt Du z.B. eine beliebige CCU Systemvariable auf einen beliebigen Wert. Das Programm kannst Du dann mit "oder" Verknüpfungen um weitere Kanäle erweitern.
Danke für den tollen tipp hat mir sehr weiter geholfen
Gruß Simon ;D
Hallo zusammen,
ich habe mir das erste Homematic IP Heizungsthermostat besorgt und eine CCU3 dazu. Soweit alles nun in fhem eingebunden.
Internals:
.FhemMetaInternals 1
.eventMapCmd Manu:noArg Auto:noArg Party:noArg Boost:noArg off:noArg on:noArg
DEF 00201A49A032B6 defaults
FUUID 5e2b203e-f33f-cf0a-6d69-c53bf03820b8206d
FVERSION 88_HMCCUDEV.pm:v4.3.12-s20880/2020-01-04
IODev CCU3
NAME 2_04_AZ_Heizungsthermostat
NR 447
STATE ???
TYPE HMCCUDEV
ccuaddr 00201A49A032B6
ccudevstate active
ccuif HmIP-RF
ccuname 2_04_AZ_Heizungsthermostat
ccutype HmIP-eTRV-B
channels 8
firmware 1.0.20
statevals devstate
.attraggr:
.attreocr:
.*
.attrminint:
.userReadings:
HASH(0xb49c4198)
OLDREADINGS:
READINGS:
2020-01-31 11:30:31 0.CONFIG_PENDING 0
2020-01-31 11:30:31 0.DUTY_CYCLE 0
2020-01-31 11:10:40 0.INSTALL_TEST true
2020-01-31 11:30:31 0.LOW_BAT 0
2020-01-31 11:30:31 0.OPERATING_VOLTAGE 3.0
2020-01-31 11:30:31 0.OPERATING_VOLTAGE_STATUS 0
2020-01-31 11:30:31 0.RSSI_DEVICE -36
2020-01-31 11:30:31 0.RSSI_PEER -36
2020-01-31 11:30:31 0.UNREACH 0
2020-01-31 11:10:40 0.UPDATE_PENDING false
2020-01-31 11:30:31 1.ACTIVE_PROFILE 2
2020-01-28 17:45:50 1.ACTUAL_TEMPERATURE 19.2
2020-01-28 17:45:50 1.ACTUAL_TEMPERATURE_STATUS 0
2020-01-31 11:30:31 1.BOOST_MODE 1
2020-01-31 11:30:31 1.BOOST_TIME 300
2020-01-31 11:30:31 1.FROST_PROTECTION 0
2020-01-31 11:30:31 1.LEVEL 80
2020-01-31 11:30:31 1.LEVEL_STATUS 0
2020-01-31 11:30:31 1.PARTY_MODE 0
2020-01-31 11:10:40 1.PARTY_SET_POINT_TEMPERATURE 0.000000
2020-01-31 11:10:40 1.PARTY_TIME_END
2020-01-31 11:10:40 1.PARTY_TIME_START
2020-01-31 11:25:22 1.QUICK_VETO_TIME 0
2020-01-31 11:30:31 1.SET_POINT_MODE 0
2020-01-28 17:45:50 1.SET_POINT_TEMPERATURE 18.0
2020-01-31 11:30:31 1.SWITCH_POINT_OCCURED 0
2020-01-31 11:10:40 1.VALVE_ADAPTION false
2020-01-31 11:30:31 1.VALVE_STATE 4
2020-01-31 11:30:31 1.WINDOW_STATE 0
2020-01-28 14:36:03 R-0.ARR_TIMEOUT 10
2020-01-28 14:36:03 R-0.CYCLIC_INFO_MSG 1
2020-01-28 14:36:03 R-0.CYCLIC_INFO_MSG_DIS 1
2020-01-28 14:36:03 R-0.CYCLIC_INFO_MSG_DIS_UNCHANGED 20
2020-01-28 14:36:03 R-0.CYCLIC_INFO_MSG_OVERDUE_THRESHOLD 2
2020-01-28 14:36:03 R-0.DAYLIGHT_SAVINGS_TIME 1
2020-01-28 14:36:03 R-0.DISABLE_MSG_TO_AC 0
2020-01-28 14:36:03 R-0.DST_END_DAY_OF_WEEK 0
2020-01-28 14:36:03 R-0.DST_END_MONTH 10
2020-01-28 14:36:03 R-0.DST_END_TIME 180
2020-01-28 14:36:03 R-0.DST_END_WEEK_OF_MONTH 5
2020-01-28 14:36:03 R-0.DST_START_DAY_OF_WEEK 0
2020-01-28 14:36:03 R-0.DST_START_MONTH 3
2020-01-28 14:36:03 R-0.DST_START_TIME 120
2020-01-28 14:36:03 R-0.DST_START_WEEK_OF_MONTH 5
2020-01-28 14:36:03 R-0.DUTYCYCLE_LIMIT 180
2020-01-28 14:36:03 R-0.ENABLE_ROUTING 1
2020-01-28 14:36:03 R-0.GLOBAL_BUTTON_LOCK 0
2020-01-28 14:36:03 R-0.LOCAL_RESET_DISABLED 0
2020-01-28 14:36:03 R-0.LOW_BAT_LIMIT 2.2
2020-01-28 14:36:03 R-0.UTC_DST_OFFSET 120
2020-01-28 14:36:03 R-0.UTC_OFFSET 60
2020-01-28 14:36:03 R-battery 2.2
2020-01-31 11:30:31 battery 0
2020-01-31 11:30:31 control 21.0
2020-01-31 11:30:31 controlMode Boost (auto)
2020-01-31 11:30:31 desired-temp 21.0
2020-01-31 11:30:31 measured-temp 21.5
2020-01-31 11:30:31 measured-temp_STATUS 0
hmccu:
devspec 00201A49A032B6
dp:
0.CONFIG_PENDING:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.DUTY_CYCLE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.INSTALL_TEST:
OSVAL true
OVAL true
SVAL true
VAL true
0.LOW_BAT:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.OPERATING_VOLTAGE:
OSVAL 3.0
OVAL 3.0
SVAL 3.0
VAL 3.0
0.OPERATING_VOLTAGE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.RSSI_DEVICE:
OSVAL -36
OVAL -36
SVAL -36
VAL -36
0.RSSI_PEER:
OSVAL 221
OVAL 221
SVAL -36
VAL -36
0.UNREACH:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.UPDATE_PENDING:
OSVAL false
OVAL false
SVAL false
VAL false
1.ACTIVE_PROFILE:
OSVAL 2
OVAL 2
SVAL 2
VAL 2
1.ACTUAL_TEMPERATURE:
OSVAL 21.5
OVAL 21.5
SVAL 21.5
VAL 21.5
1.ACTUAL_TEMPERATURE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.BOOST_MODE:
OSVAL 0
OVAL 0
SVAL 1
VAL 1
1.BOOST_TIME:
OSVAL 0
OVAL 0
SVAL 300
VAL 300
1.FROST_PROTECTION:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.LEVEL:
OSVAL 24
OVAL 0.24
SVAL 80
VAL 0.8
1.LEVEL_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.PARTY_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.PARTY_SET_POINT_TEMPERATURE:
OSVAL 0.000000
OVAL 0.000000
SVAL 0.000000
VAL 0.000000
1.PARTY_TIME_END:
OSVAL
OVAL
SVAL
VAL
1.PARTY_TIME_START:
OSVAL
OVAL
SVAL
VAL
1.QUICK_VETO_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.SET_POINT_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.SET_POINT_TEMPERATURE:
OSVAL 21.0
OVAL 21.0
SVAL 21.0
VAL 21.0
1.SWITCH_POINT_OCCURED:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.VALVE_ADAPTION:
OSVAL false
OVAL false
SVAL false
VAL false
1.VALVE_STATE:
OSVAL 4
OVAL 4
SVAL 4
VAL 4
1.WINDOW_STATE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
Attributes:
DbLogExclude .*
IODev CCU3
ccureadingfilter .*
ccureadingformat datapoint
ccureadingname 0.(LOWBAT|LOW_BAT):+battery;1.SET_POINT_TEMPERATURE:desired-temp;1.ACTUAL_TEMPERATURE:measured-temp;R-0.GLOBAL_BUTTON_LOCK:btnLock
ccuscaleval LEVEL:0:1:0:100
controldatapoint 1.SET_POINT_TEMPERATURE
event-on-change-reading .*
eventMap /datapoint 1.CONTROL_MODE 1:Manu/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.PARTY_MODE true:Party/datapoint 1.BOOST_MODE true:Boost/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5/on/
room 2_04_AZ
userReadings controlMode
{
if (ReadingsVal($name,"1.SET_POINT_MODE","") eq "0" and ReadingsVal($name,"1.BOOST_MODE","") eq "0") {return "auto"}
elsif (ReadingsVal($name,"1.SET_POINT_MODE","") eq "1" and ReadingsVal($name,"1.BOOST_MODE","") eq "0") {return "manual"}
elsif (ReadingsVal($name,"1.SET_POINT_MODE","") eq "0" and ReadingsVal($name,"1.BOOST_MODE","") eq "1") {return "Boost (auto)"}
elsif (ReadingsVal($name,"1.SET_POINT_MODE","") eq "1" and ReadingsVal($name,"1.BOOST_MODE","") eq "1") {return "Boost (manual)"}
else {return "Error"}
},
Nun versuche ich 2 Dinge noch hinzubekommen was mir aber leider nicht gelingt.
1. ich bekomme den Partymodus nicht gesetzt
2. ich bekomme die Tastatursperre nicht gesetzt (GLOBAL_BUTTON_LOCK)
Kann da jemand weiterhelfen?
Vielen Dank.
Gruß Daniel
Geht das nicht?
set 2_04_AZ_Heizungsthermostat datapoint 1.PARTY_MODE 1
Zitat von: zap am 31 Januar 2020, 14:28:42
Geht das nicht?
set 2_04_AZ_Heizungsthermostat datapoint 1.PARTY_MODE 1
Leider nein.
Hatte ich auch schon probiert. Da kommt
HMCCUDEV: 2_04_AZ_Heizungsthermostat Invalid datapoint
Per Google findet man nur Fragen danach, keine funktionierenden Lösungen.
Eine Idee wäre, in der CCU erst mal alle Party-Mode relevanten Parameter (Temperatur, Start- und Endezeit) zu setzen und dann schauen, wie sich die Readings in FHEM verändern. Ich vermute, du musst alle PARTY_xy Datenpunkte setzen.
Zitat von: zap am 31 Januar 2020, 16:52:27
Per Google findet man nur Fragen danach, keine funktionierenden Lösungen.
Eine Idee wäre, in der CCU erst mal alle Party-Mode relevanten Parameter (Temperatur, Start- und Endezeit) zu setzen und dann schauen, wie sich die Readings in FHEM verändern. Ich vermute, du musst alle PARTY_xy Datenpunkte setzen.
Also was ich herausgefunden habe ist, dass wenn man "1.PARTY_TIME_END" und "1.PARTY_TIME_START" setzt, der Party Modus automatisch gesetzt wird.
Fehlt nur noch die Temperatur. Die kann man leider auch nicht setzen. Da kann man aber vermutlich "1.ACTUAL_TEMPERATURE" nutzen. Ich werde das mal etwas testen und schauen ob nach dem Party Modus wieder alles auf Auto geschaltet wird.
Zitat von: dancatt am 31 Januar 2020, 11:37:00
2. ich bekomme die Tastatursperre nicht gesetzt (GLOBAL_BUTTON_LOCK)
Versuch bitte mal folgendes:
set xy config 0 GLOBAL_BUTTON_LOCK=1
oder
set xy config GLOBAL_BUTTON_LOCK=1
Leider nein.
Zitat von: zap am 01 Februar 2020, 17:48:34
set xy config 0 GLOBAL_BUTTON_LOCK=1
HMCCUDEV: 2_04_AZ_Heizungsthermostat Execution of CCU script or command failed
Zitat von: zap am 01 Februar 2020, 17:48:34
set xy config GLOBAL_BUTTON_LOCK=1
HMCCUDEV: 2_04_AZ_Heizungsthermostat Usage: set 2_04_AZ_Heizungsthermostat config [{channel-number}] {parameter}={value} [...]
Hallo, hier meine Einbindung des HmIP Außensensors HmIP-SWO-B mit FHEM-konformen Readings. Er ersetzt damit meinen etwa 15 Jahre alten KS200.
attr HmIP_998E326 IODev d_ccu
attr HmIP_998E326 alias Außensensor
attr HmIP_998E326 ccureadingfilter 1!.*
attr HmIP_998E326 ccureadingname 1.ACTUAL_TEMPERATURE:temperature;;1.HUMIDITY:humidity;;1.ILLUMINATION:brightness;;1.SUNSHINEDURATION:sunshine;;1.WIND_SPEED:wind;;1.SUNSHINE_THRESHOLD_OVERRUN:sunshine_THRESHOLD;;1.WIND_THRESHOLD_OVERRUN:wind_THRESHOLD;;0.UNREACH:Activity
attr HmIP_998E326 stateFormat T: temperature H: humidity W: wind B: brightness
attr HmIP_998E326 stripnumber 2
attr HmIP_998E326 substitute 0.UNREACH!(1|true):dead,(0|false):alive
Nach einemdeletereading HmIP_998E326 (0|1):.*
sieht es dann so aus:
Readings
Activity dead 2020-02-14 05:29:36
absFeuchte 7.9 2020-02-14 05:14:45
battery ok 2020-02-14 05:14:45
brightness 50.9 2020-02-14 05:14:45
brightness_STATUS 0 2020-02-14 05:14:45
dewpoint 8.0 2020-02-14 05:14:45
hmstate unreachable 2020-02-14 05:29:36
humidity 45 2020-02-14 05:14:45
humidity_STATUS 0 2020-02-14 05:14:45
sunshine 0 2020-02-14 05:14:45
sunshine_OVERFLOW 0 2020-02-14 05:14:45
sunshine_THRESHOLD 0 2020-02-14 05:14:45
temperature 20.3 2020-02-14 05:14:45
temperature_STATUS 0 2020-02-14 05:14:45
wind 0 2020-02-14 05:14:45
wind_STATUS 0 2020-02-14 05:14:45
wind_THRESHOLD 0 2020-02-14 05:14:45
STATE sieht dann so aus: STATE T: 20.3 H: 45 W: 0 B: 50.9
Ich arbeite dann eher mit Readingsgroup weiter, daher hat das für mich nur kosmetische Bedeutung. Das Batterie-Flag wird bereits in d_ccu angepasst, das Reading "Activity" ist an normale HM-Geräte angelehnt und meldet nach etwa 15min ohne Daten ein "dead". Die Readings "absFeuchte" und "dewpoint" generiert FHEM wie gewohnt automatisch. Somit sind nun alle (wichtigen) Readings konform zu allen anderen Sensoren und deren Bezeichnungen.
Hallo ich besitze das Wired-IP Gerät "HmIPW-WTH" und hab es mit den attr des HmIP-WTH2 angelernt.
Soweit funktioniert dieses auch. Nur wird mir der "Control Mode" nicht ausgegeben.
Also das ich ein Reading bekomme in dem entweder "AUTO", "MANU", "BOOST" steht.
Im get deviceinfo findet man folgendes :1.CONTROL_MODE = [W]
Und über /datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.S
kann ich auch zwischen den Modis wechseln, nur leider ohne Anzeige
Im alten HM-Thermostat "HM-TC-IT-WM-W-EU" gibts das Reading noch
Gruß Thomas
In jedem Gerät wird der Control Mode anders gesetzt oder ausgelesen. In Deinem Fall ist dieser Datenpunkt nur beschreibbar. Mach bitte mal ein get deviceinfo
Zitat von: zap am 26 Februar 2020, 15:40:33
In jedem Gerät wird der Control Mode anders gesetzt oder ausgelesen. In Deinem Fall ist dieser Datenpunkt nur beschreibbar. Mach bitte mal ein get deviceinfo
Im HMCCU als Dev erstellt keine Kanäle
CHN 001CDA498F858F:0 Heizung_Thermo_Flur_Th:0
DPT {b} HmIP-RF.001CDA498F858F:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.001CDA498F858F:0.IDENTIFICATION_MODE_KEY_VISUAL = [W]
DPT {b} HmIP-RF.001CDA498F858F:0.IDENTIFICATION_MODE_LCD_BACKLIGHT = [W]
DPT {f} HmIP-RF.001CDA498F858F:0.IDENTIFY_DURATION = [W]
DPT {f} HmIP-RF.001CDA498F858F:0.IDENTIFY_TARGET_LEVEL = [W]
DPT {b} HmIP-RF.001CDA498F858F:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.001CDA498F858F:0.OPERATING_VOLTAGE = 24.100000 [RE]
DPT {i} HmIP-RF.001CDA498F858F:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {b} HmIP-RF.001CDA498F858F:0.UNREACH = false [RE]
DPT {b} HmIP-RF.001CDA498F858F:0.UPDATE_PENDING = false [RE]
CHN 001CDA498F858F:1 Heizung_Thermo_Flur_Th:1
DPT {i} HmIP-RF.001CDA498F858F:1.ACTIVE_PROFILE = 1 [RWE]
DPT {f} HmIP-RF.001CDA498F858F:1.ACTUAL_TEMPERATURE = 21.700000 [RE]
DPT {i} HmIP-RF.001CDA498F858F:1.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.001CDA498F858F:1.BOOST_MODE = false [WE]
DPT {i} HmIP-RF.001CDA498F858F:1.BOOST_TIME = 0 [RE]
DPT {f} HmIP-RF.001CDA498F858F:1.CONTROL_DIFFERENTIAL_TEMPERATURE = [W]
DPT {i} HmIP-RF.001CDA498F858F:1.CONTROL_MODE = [W]
DPT {i} HmIP-RF.001CDA498F858F:1.DURATION_UNIT = [W]
DPT {i} HmIP-RF.001CDA498F858F:1.DURATION_VALUE = [W]
DPT {b} HmIP-RF.001CDA498F858F:1.FROST_PROTECTION = false [RE]
DPT {i} HmIP-RF.001CDA498F858F:1.HEATING_COOLING = 0 [RWE]
DPT {i} HmIP-RF.001CDA498F858F:1.HUMIDITY = 46 [RE]
DPT {i} HmIP-RF.001CDA498F858F:1.HUMIDITY_STATUS = 0 [RE]
DPT {b} HmIP-RF.001CDA498F858F:1.PARTY_MODE = false [RE]
DPT {f} HmIP-RF.001CDA498F858F:1.PARTY_SET_POINT_TEMPERATURE = 0.000000 [RE]
DPT {s} HmIP-RF.001CDA498F858F:1.PARTY_TIME_END = [RWE]
DPT {s} HmIP-RF.001CDA498F858F:1.PARTY_TIME_START = [RWE]
DPT {i} HmIP-RF.001CDA498F858F:1.QUICK_VETO_TIME = 0 [RE]
DPT {i} HmIP-RF.001CDA498F858F:1.SET_POINT_MODE = 0 [RWE]
DPT {f} HmIP-RF.001CDA498F858F:1.SET_POINT_TEMPERATURE = 21.000000 [RWE]
DPT {b} HmIP-RF.001CDA498F858F:1.SWITCH_POINT_OCCURED = false [RE]
DPT {i} HmIP-RF.001CDA498F858F:1.WINDOW_STATE = 0 [RWE]
Internals:
CFGFN
DEF 001CDA498F858F
FUUID 5e55841c-f33f-b0b0-7e09-edc04690f1e7e361
IODev d_ccu
NAME Heizung_Thermo_Flur_Th
NR 679309
STATE ist: 21.7 C° / soll: 21.0 C°
TYPE HMCCUDEV
ccuaddr 001CDA498F858F
ccudevstate active
ccuif HmIP-RF
ccuname Heizung_Thermo_Flur_Th
ccutype HmIPW-WTH
channels 8
statevals devstate
READINGS:
2020-02-26 16:56:00 0.CONFIG_PENDING 0
2020-02-25 22:50:14 0.INSTALL_TEST true
2020-02-26 16:56:00 0.OPERATING_VOLTAGE 24.1
2020-02-26 16:56:00 0.OPERATING_VOLTAGE_STATUS 0
2020-02-26 16:56:00 0.UNREACH alive
2020-02-25 22:50:14 0.UPDATE_PENDING false
2020-02-26 16:56:00 1.ACTIVE_PROFILE 1
2020-02-26 16:56:00 1.ACTUAL_TEMPERATURE 21.7
2020-02-26 16:56:00 1.ACTUAL_TEMPERATURE_STATUS 0
2020-02-26 16:56:00 1.BOOST_MODE 0
2020-02-26 16:56:00 1.BOOST_TIME 0
2020-02-26 16:56:00 1.FROST_PROTECTION 0
2020-02-26 16:56:00 1.HEATING_COOLING 0
2020-02-26 16:56:00 1.HUMIDITY 46
2020-02-26 16:56:00 1.HUMIDITY_STATUS 0
2020-02-26 16:56:00 1.PARTY_MODE 0
2020-02-25 22:50:14 1.PARTY_SET_POINT_TEMPERATURE 0.0
2020-02-25 22:50:14 1.PARTY_TIME_END
2020-02-25 22:50:14 1.PARTY_TIME_START
2020-02-26 16:56:00 1.QUICK_VETO_TIME 0
2020-02-26 16:56:00 1.SET_POINT_MODE 0
2020-02-26 16:56:00 1.SET_POINT_TEMPERATURE 21.0
2020-02-26 16:56:00 1.SWITCH_POINT_OCCURED 0
2020-02-26 16:56:00 1.WINDOW_STATE closed
2020-02-26 16:56:00 control 21.0
2020-02-26 16:56:00 hmstate 21.0
2020-02-26 16:56:00 state 21.0
hmccu:
devspec 001CDA498F858F
dp:
0.CONFIG_PENDING:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.INSTALL_TEST:
OSVAL true
OVAL true
SVAL true
VAL true
0.OPERATING_VOLTAGE:
OSVAL 24.1
OVAL 24.1
SVAL 24.1
VAL 24.1
0.OPERATING_VOLTAGE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.UNREACH:
OSVAL alive
OVAL 0
SVAL alive
VAL 0
0.UPDATE_PENDING:
OSVAL false
OVAL false
SVAL false
VAL false
1.ACTIVE_PROFILE:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
1.ACTUAL_TEMPERATURE:
OSVAL 21.7
OVAL 21.7
SVAL 21.7
VAL 21.7
1.ACTUAL_TEMPERATURE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.BOOST_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.BOOST_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.FROST_PROTECTION:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.HEATING_COOLING:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.HUMIDITY:
OSVAL 45
OVAL 45
SVAL 46
VAL 46
1.HUMIDITY_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.PARTY_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.PARTY_SET_POINT_TEMPERATURE:
OSVAL 0.0
OVAL 0.000000
SVAL 0.0
VAL 0.000000
1.PARTY_TIME_END:
OSVAL
OVAL
SVAL
VAL
1.PARTY_TIME_START:
OSVAL
OVAL
SVAL
VAL
1.QUICK_VETO_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.SET_POINT_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.SET_POINT_TEMPERATURE:
OSVAL 21.0
OVAL 21.0
SVAL 21.0
VAL 21.0
1.SWITCH_POINT_OCCURED:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.WINDOW_STATE:
OSVAL closed
OVAL 0
SVAL closed
VAL 0
Attributes:
IODev d_ccu
alias Thermostat Flur Thomas
ccureadingfilter .*
cmdIcon Auto:sani_heating_automatic Manual:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
controldatapoint 1.SET_POINT_TEMPERATURE
event-on-change-reading .*
eventMap /datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.SET_POINT_TEMPERATURE 30.5:on/
group Heizung Flur Th
room Heizung
stateFormat ist: 1.ACTUAL_TEMPERATURE C° / soll: 1.SET_POINT_TEMPERATURE C°
statechannel 1
statedatapoint 1.SET_POINT_TEMPERATURE
stripnumber 1
substexcl control
substitute SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open
webCmd control:Boost:Auto:Manual:on:off
widgetOverride control:slider,4.5,0.5,30.5,1
Hat jemand zufällig ein Beispiel für eine Integration von HB-UNI-RGB-LED-CTRL?
DeviceInfo liefert mir folgendes:
CHN JPRGB00001:0 HB-UNI-RGB-LED-CTRL JPRGB00001:0
DPT {b} BidCos-RF.JPRGB00001:0.UNREACH = true [RE]
DPT {b} BidCos-RF.JPRGB00001:0.STICKY_UNREACH = true [RWE]
DPT {b} BidCos-RF.JPRGB00001:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.JPRGB00001:0.LOWBAT = false [RE]
DPT {b} BidCos-RF.JPRGB00001:0.DUTYCYCLE = false [RE]
DPT {n} BidCos-RF.JPRGB00001:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.JPRGB00001:0.RSSI_PEER = 1 [RE]
DPT {b} BidCos-RF.JPRGB00001:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.JPRGB00001:0.UPDATE_PENDING = false [RE]
DPT {n} BidCos-RF.JPRGB00001:0.AES_KEY = 0 [R]
CHN JPRGB00001:1 HB-UNI-RGB-LED-CTRL JPRGB00001:1
DPT {a} BidCos-RF.JPRGB00001:1.LEVEL = 0.000000 [RWE]
DPT {b} BidCos-RF.JPRGB00001:1.OLD_LEVEL = [W]
DPT {f} BidCos-RF.JPRGB00001:1.RAMP_TIME = [W]
DPT {f} BidCos-RF.JPRGB00001:1.ON_TIME = [W]
DPT {b} BidCos-RF.JPRGB00001:1.RAMP_STOP = [W]
DPT {b} BidCos-RF.JPRGB00001:1.INHIBIT = false [RWE]
DPT {i} BidCos-RF.JPRGB00001:1.DIRECTION = 0 [RE]
DPT {b} BidCos-RF.JPRGB00001:1.INSTALL_TEST = [W]
DPT {b} BidCos-RF.JPRGB00001:1.WORKING = false [RE]
CHN JPRGB00001:2 HB-UNI-RGB-LED-CTRL JPRGB00001:2
DPT {i} BidCos-RF.JPRGB00001:2.COLOR = 0 [RWE]
DPT {s} BidCos-RF.JPRGB00001:2.USER_COLOR = [W]
DPT {f} BidCos-RF.JPRGB00001:2.ON_TIME = [W]
DPT {f} BidCos-RF.JPRGB00001:2.RAMP_TIME = [W]
DPT {b} BidCos-RF.JPRGB00001:2.INHIBIT = false [RWE]
DPT {i} BidCos-RF.JPRGB00001:2.ACT_BRIGHTNESS = [W]
DPT {i} BidCos-RF.JPRGB00001:2.ACT_BRIGHTNESS_STORE = [W]
DPT {i} BidCos-RF.JPRGB00001:2.ACT_HSV_COLOR_VALUE = [W]
DPT {i} BidCos-RF.JPRGB00001:2.ACT_HSV_COLOR_VALUE_STORE = [W]
DPT {f} BidCos-RF.JPRGB00001:2.ON_TIME_STORE = [W]
DPT {f} BidCos-RF.JPRGB00001:2.RAMP_TIME_STORE = [W]
CHN JPRGB00001:3 HB-UNI-RGB-LED-CTRL JPRGB00001:3
DPT {i} BidCos-RF.JPRGB00001:3.PROGRAM = 0 [RWE]
DPT {s} BidCos-RF.JPRGB00001:3.USER_PROGRAM = [W]
DPT {f} BidCos-RF.JPRGB00001:3.ON_TIME = 0.000000 [RW]
DPT {f} BidCos-RF.JPRGB00001:3.RAMP_TIME = 0.500000 [RW]
DPT {b} BidCos-RF.JPRGB00001:3.INHIBIT = false [RWE]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_BRIGHTNESS = 0 [RW]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_BRIGHTNESS_STORE = [W]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_COLOR_PROGRAM_STORE = [W]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_MAX_BOARDER = 0 [RW]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_MAX_BORDER_STORE = [W]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_MIN_BOARDER = 0 [RW]
DPT {i} BidCos-RF.JPRGB00001:3.ACT_MIN_BORDER_STORE = [W]
DPT {f} BidCos-RF.JPRGB00001:3.ON_TIME_STORE = [W]
DPT {f} BidCos-RF.JPRGB00001:3.RAMP_TIME_STORE = [W]
Hauptsächlicht geht es mir um das Ein- und Ausschalten der Beleuchtung. RGB setzen kann hinterher kommen.
Mein HM-Sec-SCo liefert über HMCCU nur per Hand mit get devstate Readings, sonst nicht.
Internals:
CCUNum 1
Clients :HMCCUDEV:HMCCUCHN:HMCCURPC:HMCCURPCPROC:
DEF 192.168.178.30
FUUID 5e9d986d-f33f-4003-fa22-7b30a23a9904f04e
NAME CCU3
NOTIFYDEV global,TYPE=(HMCCU|HMCCUDEV|HMCCUCHN)
NR 736
NTFY_ORDER 50-CCU3
RPCState running
STATE running/OK
TYPE HMCCU
ccuaddr BidCoS-RF
ccuchannels 104
ccudevices 3
ccuif BidCos-RF
ccuinterfaces CUxD,BidCos-RF,VirtualDevices,HmIP-RF
ccuip 192.168.178.30
ccuname HM-RCV-50
ccustate active
ccutype CCU2/3
host 192.168.178.30
prot http
version 4.3.024
READINGS:
2020-04-20 15:06:17 count_channels 104
2020-04-20 15:06:17 count_devices 3
2020-04-20 15:06:17 count_groups 0
2020-04-20 15:06:17 count_interfaces 4
2020-04-20 15:06:17 count_programs 0
2020-04-20 16:45:40 rpcstate running
2020-04-20 16:45:41 state OK
hmccu:
defInterface BidCos-RF
defPort 2001
evtime 0
evtimeout 0
rpccount 0
rpcports 2001,2010
updatetime 0
...
HM-Sec-SCo-PEQ2228987:
address PEQ2228987
addtype dev
valid 1
HM-Sec-SCo-PEQ2228987:0:
address PEQ2228987:0
addtype chn
valid 1
HM-Sec-SCo-PEQ2228987:1:
address PEQ2228987:1
addtype chn
valid 1
...
grp:
ifports:
2001 BidCos-RF
2010 HmIP-RF
8701 CUxD
9292 VirtualDevices
interfaces:
BidCos-RF:
devcount 2
device d_rpc178030BidCos_RF
flags forceASCII
host 192.168.178.30
manager HMCCU
port 2001
prot http
state running
type A
url http://192.168.178.30:2001
CUxD:
devcount 0
flags forceInit
host 192.168.178.30
manager null
port 8701
prot xmlrpc_bin
state inactive
type B
url xmlrpc_bin://192.168.178.30:8701
HmIP-RF:
devcount 1
device d_rpc178030HmIP_RF
flags forceASCII
host 192.168.178.30
manager HMCCU
port 2010
prot http
state running
type A
url http://192.168.178.30:2010
VirtualDevices:
devcount 0
flags _
host 192.168.178.30
manager null
port 9292
prot http
state inactive
type A
url http://192.168.178.30:9292/groups
prg:
rpc:
Attributes:
ccuflags procrpc
cmdIcon on:general_an off:general_aus
devStateIcon Initialized:set_on running/OK:li_wht_on inactive/OK:li_wht_off
event-on-update-reading .*
eventMap /rpcserver on:on/rpcserver off:off/
icon it_raspberry_logo@red
room !CCU
rpcinterfaces BidCos-RF,HmIP-RF
rpcport 2001,2010
rpcserver on
rpcserveraddr 192.168.178.30
stateFormat rpcstate/state
verbose 3
der HMCCUCHN:
define HM.Kontakt HMCCUCHN PEQ2228987:1 readonly
setuuid HM.Kontakt 5e9d9c7a-f33f-4003-527c-c629cde43eaa8f68
attr HM.Kontakt IODev CCU3
attr HM.Kontakt ccureadingfilter STATE
attr HM.Kontakt ccureadingformat datapoint
attr HM.Kontakt devStateIcon closed:10px-kreis-gruen open:10px-kreis-rot
attr HM.Kontakt event-on-change-reading .*
attr HM.Kontakt hmstatevals ERROR!7:sabotage;;SABOTAGE!1:sabotage
attr HM.Kontakt room !CCU
attr HM.Kontakt statedatapoint STATE
attr HM.Kontakt substitute STATE!(0|false):closed,(1|true):open
Ich bin ratlos und bitte um Hilfe.
Was hab ich vergessen oder falsch gemacht?
Ersetze mal bitte event-on-change-reading durch event-on-update-reading
event-on-update-reading .*
... mit dem gleichen Ergebnis.
Ist das Dein einziges BidCos Gerät? Wenn nein, werden die Readings bei den anderen aktualisiert?
Ja, es ist mein einziges BidCos-Gerät auf der CCU3. Sollte auch nur ein Test sein, bevor ich HmIP-Geräte anschaffe.
Und läuft der RPC Server? Welche Meldungen werden beim Start des RPC Servers ins Log geschrieben?
Ja, der läuft:
HMCCU: [CCU3 : 22745] Initialized version 4.3.024
2020.04.22 07:21:10 1: HMCCU: [CCU3 : 22745] HMCCU: Initializing device
2020.04.22 07:21:10 1: HMCCU: [CCU3 : 22745] HMCCU: Read 3 devices with 104 channels from CCU 192.168.178.30
2020.04.22 07:21:10 1: HMCCU: [CCU3 : 22745] HMCCU: Read 4 interfaces from CCU 192.168.178.30
2020.04.22 07:21:10 1: HMCCU: [CCU3 : 22745] HMCCU: Read 0 programs from CCU 192.168.178.30
2020.04.22 07:21:10 1: HMCCU: [CCU3 : 22745] HMCCU: Read 0 virtual groups from CCU 192.168.178.30
2020.04.22 07:21:10 1: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] Initialized version 1.9.001 for interface BidCos-RF with I/O device CCU3
2020.04.22 07:21:10 1: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22745] Initialized version 1.9.001 for interface HmIP-RF with I/O device CCU3
...
2020.04.22 07:21:38 2: HMCCU: [CCU3 : 22745] Get RPC device for interface BidCos-RF
2020.04.22 07:21:38 2: HMCCU: [CCU3 : 22745] Get RPC device for interface HmIP-RF
2020.04.22 07:21:38 2: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] RPC server process started for interface BidCos-RF with PID=22834
2020.04.22 07:21:38 2: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22834] Initializing RPC server CB2001178111178030 for interface BidCos-RF
2020.04.22 07:21:38 1: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] RPC server starting
2020.04.22 07:21:38 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22745] RPC server process started for interface HmIP-RF with PID=22835
2020.04.22 07:21:38 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22835] Initializing RPC server CB2010178111178030 for interface HmIP-RF
2020.04.22 07:21:38 1: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22745] RPC server starting
2020.04.22 07:21:39 2: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22834] Callback server CB2001178111178030 created. Listening on port 7411
2020.04.22 07:21:39 2: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22834] CB2001178111178030 accepting connections. PID=22834
2020.04.22 07:21:39 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22835] Callback server CB2010178111178030 created. Listening on port 7420
2020.04.22 07:21:39 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22835] CB2010178111178030 accepting connections. PID=22835
2020.04.22 07:21:40 2: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] RPC server CB2001178111178030 enters server loop
2020.04.22 07:21:40 2: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] Registering callback http://192.168.178.30:7411/fh2001 of type A with ID CB2001178111178030 at http://192.168.178.30:2001
2020.04.22 07:21:40 1: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] RPC server CB2001178111178030 running
2020.04.22 07:21:40 1: HMCCURPCPROC: [d_rpc178030BidCos_RF : 22745] Scheduled CCU ping every 300 seconds
2020.04.22 07:21:40 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22745] RPC server CB2010178111178030 enters server loop
2020.04.22 07:21:41 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22745] Registering callback http://192.168.178.30:7420/fh2010 of type A with ID CB2010178111178030 at http://192.168.178.30:2010
2020.04.22 07:21:41 1: HMCCURPCPROC: [d_rpc178030HmIP_RF : 22745] RPC server CB2010178111178030 running
2020.04.22 07:21:41 1: HMCCU: [CCU3 : 22745] All RPC servers running
2020.04.22 07:21:41 2: HMCCU: [CCU3 : 22745] Updating 1 of 1 client devices matching devexp=.* filter=ccudevstate=active,ccuif=BidCos-RF|HmIP-RF
2020.04.22 07:21:41 2: HMCCU: [CCU3 : 22745] Update success=1 failed=0
Nun ist ab heute noch ein HMIP-SWDO dazugekommen.
Dieser verhält sich im FHEM genau so:
Er liefert über HMCCU nur per Hand mit get devstate Readings, sonst nicht.
2020.04.22 15:00:33 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 10334] Callback server CB2010178111178030 created. Listening on port 7420
2020.04.22 15:00:33 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 10334] CB2010178111178030 accepting connections. PID=10334
2020.04.22 15:00:33 1: HMCCURPCPROC: [d_rpc178030BidCos_RF : 6627] RPC server CB2001178111178030 running
2020.04.22 15:00:33 1: HMCCURPCPROC: [d_rpc178030BidCos_RF : 6627] Scheduled CCU ping every 300 seconds
2020.04.22 15:00:33 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 6627] RPC server CB2010178111178030 enters server loop
2020.04.22 15:00:33 2: HMCCURPCPROC: [d_rpc178030HmIP_RF : 6627] Registering callback http://192.168.178.30:7420/fh2010 of type A with ID CB2010178111178030 at http://192.168.178.30:2010
2020.04.22 15:00:33 1: HMCCURPCPROC: [d_rpc178030HmIP_RF : 6627] RPC server CB2010178111178030 running
2020.04.22 15:00:33 1: HMCCU: [CCU3 : 6627] All RPC servers running
2020.04.22 15:00:34 2: HMCCU: [CCU3 : 6627] Updating 2 of 2 client devices matching devexp=.* filter=ccudevstate=active,ccuif=BidCos-RF|HmIP-RF
2020.04.22 15:00:34 2: HMCCU: [CCU3 : 6627] Update success=2 failed=0
Vielleicht sollte ich noch erwähnen, das die CCU3 ein ELV Charly ist.
Mach mal morgen das Update für 88_HMCCU.pm. Vorher würde ich die RPC Server stoppen.
Nach dem Update heute morgen ist das Verhalten unverändert.
Hallo Zusammen,
ich habe da mal eine Frage bei der ich bisher nicht fündig wurde. Ich habe meine schon viele Jahre alte Homematic Anbindung von HM-MOD-RPI-PCB (HMUARTGW) auf HMCCU via RPI-RF-MOD (Raspberrymatic) umgestellt. Der Grund war, das ich HmIP Geräte einbinden wollte und mich eben für HmIP öffnen wollte. Der Umstieg war bei über 40 HM Geräten zwar sehr aufwendig, hat aber gut funktioniert. Leider sind die Schaltzeiten jetzt deutlich länger aber evtl. kann ich da noch was optimieren.
Meine eigentliche Frage dreht sich um das 16fach LED Modul HM-OU-LED16. Mit der alten Anbindung konnte ich mit dem Befehl
"set 16_LED ilum 1 3" oder "set 16_LED ilum 2 0"
das Panel in der Nacht oder bei Abwesenheit aus- bzw. einschalten. Dabei hat sich das Panel die Zustände der einzelnen LEDs behalten. Ich finde einen vergleichbaren Befehl weder für einen HMCCUCHN Channel noch für einen HMCCUDEV Device.
Vielleicht bin ich ja etwas pinzig, aber wir sind hier im Thread "HMCCU Beispiel Geräte-Definitionen" und in letzter Zeit sind hier dauernd HMCCU-Probleme ...
Ist etwas nervig, wenn man eine Notification auf den Thread hat, aber dadurch immer mehr false positives.
Zitat von: kjmEjfu am 25 April 2020, 19:48:02
Vielleicht bin ich ja etwas pinzig, aber wir sind hier im Thread "HMCCU Beispiel Geräte-Definitionen" und in letzter Zeit sind hier dauernd HMCCU-Probleme ...
Ist etwas nervig, wenn man eine Notification auf den Thread hat, aber dadurch immer mehr false positives.
Meine Frage muss ja kein Problem sein, sicher gibt es eine einfache Antwort. Ich hatte in diesem Thread viele sehr nützliche Hinweise gefunden ...
Zitat von: gloob am 06 März 2020, 08:49:29
Hat jemand zufällig ein Beispiel für eine Integration von HB-UNI-RGB-LED-CTRL?
Hi, ich habe es so umgesetzt. Die Userreadings brauchst Du nicht mit zu berücksichtigen, die sind für meine HM FB Programme.
Falls es jemand optimieren kann, nur her damit :-)
defmod HM_UNI_RGB_LED_CTRL HMCCUDEV TV_LED
attr HM_UNI_RGB_LED_CTRL IODev HOMECCU
attr HM_UNI_RGB_LED_CTRL alias TV Licht
attr HM_UNI_RGB_LED_CTRL ccureadingfilter (STATE|COLOR|LEVEL|PROGRAM|ACT)
attr HM_UNI_RGB_LED_CTRL cmdIcon on:general_an off:general_aus
attr HM_UNI_RGB_LED_CTRL event-on-update-reading .*
attr HM_UNI_RGB_LED_CTRL eventMap /datapoint 1.LEVEL 0:off/datapoint 1.LEVEL 1:on/datapoint 2.COLOR:2.COLOR:colorpicker,HUE,0,1,200/datapoint 3.PROGRAM:3.PROGRAM:select,0,1,2,3,4,5,6
attr HM_UNI_RGB_LED_CTRL group Licht
attr HM_UNI_RGB_LED_CTRL hmstatevals true):unreachable;;^LOW_?BAT!(1|true):warn_battery'
attr HM_UNI_RGB_LED_CTRL icon hue_filled_lightstrip
attr HM_UNI_RGB_LED_CTRL room HM,Wohnzimmer
attr HM_UNI_RGB_LED_CTRL statedatapoint 1.LEVEL
attr HM_UNI_RGB_LED_CTRL substexcl control
attr HM_UNI_RGB_LED_CTRL substitute LEVEL!#0-0:off,#0.1-1:on;;
attr HM_UNI_RGB_LED_CTRL userReadings cColor cPrg
attr HM_UNI_RGB_LED_CTRL webCmd control:on:off:2.COLOR:3.PROGRAM
attr HM_UNI_RGB_LED_CTRL widgetOverride control:slider,0,0.1,1,1
setstate HM_UNI_RGB_LED_CTRL on
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:31:57 1.LEVEL on
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 06:39:42 2.COLOR 180
setstate HM_UNI_RGB_LED_CTRL 2020-05-23 11:37:26 3.ACT_BRIGHTNESS 0
setstate HM_UNI_RGB_LED_CTRL 2020-05-23 11:37:26 3.ACT_MAX_BOARDER 0
setstate HM_UNI_RGB_LED_CTRL 2020-05-23 11:37:26 3.ACT_MIN_BOARDER 0
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:33:06 3.PROGRAM 1
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:32:56 activity alive
setstate HM_UNI_RGB_LED_CTRL 2020-05-23 11:37:26 battery ok
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:33:01 cColor 0
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:33:06 cPrg 1
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:33:01 color 0
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:31:57 control 1.000000
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:33:06 hmstate on
setstate HM_UNI_RGB_LED_CTRL 2020-05-25 22:31:57 state on
Ich habe einen HmIP-PCBS2, das ist ein 2-Kanal Schalter, somit brauche ich 2 statedatapoints.
Die entsprechenden Schaltkanäle sind "4.STATE"und "8.STATE"
Allerdings erlaubt das attribut statedatapoint nur die Definition von einem Kanal.
Weiss jemand wie ich den 2-ten Kanal in den Statedatapoint bekomme? Ich mächte ja beide Kanäle an- und ausschalten
Hier das list und die datapoints:
CHN 00199A1234A123:0 HmIP-PCBS2 00199A1234A123:0
DPT {f} HmIP-RF.00199A1234A123:0.ACTUAL_TEMPERATURE = 28.000000 [RE]
DPT {b} HmIP-RF.00199A1234A123:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.00199A1234A123:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.00199A1234A123:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.00199A1234A123:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.00199A1234A123:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.00199A1234A123:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.00199A1234A123:0.RSSI_DEVICE = 194 [RE]
DPT {n} HmIP-RF.00199A1234A123:0.RSSI_PEER = 196 [RE]
DPT {b} HmIP-RF.00199A1234A123:0.UNREACH = false [RE]
DPT {b} HmIP-RF.00199A1234A123:0.UPDATE_PENDING = false [RE]
CHN 00199A1234A123:1 HmIP-PCBS2 00199A1234A123:1
DPT {b} HmIP-RF.00199A1234A123:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.00199A1234A123:1.PRESS_SHORT = [E]
CHN 00199A1234A123:2 HmIP-PCBS2 00199A1234A123:2
DPT {b} HmIP-RF.00199A1234A123:2.PRESS_LONG = [E]
DPT {b} HmIP-RF.00199A1234A123:2.PRESS_SHORT = [E]
CHN 00199A1234A123:3 HmIP-PCBS2 00199A1234A123:3
DPT {i} HmIP-RF.00199A1234A123:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:3.SECTION = 2 [RE]
DPT {i} HmIP-RF.00199A1234A123:3.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:3.STATE = true [RE]
CHN 00199A1234A123:4 HmIP-PCBS2 00199A1234A123:4
DPT {s} HmIP-RF.00199A1234A123:4.COMBINED_PARAMETER = [W]
DPT {f} HmIP-RF.00199A1234A123:4.ON_TIME = [W]
DPT {i} HmIP-RF.00199A1234A123:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:4.SECTION = 2 [RE]
DPT {i} HmIP-RF.00199A1234A123:4.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:4.STATE = true [RWE]
CHN 00199A1234A123:5 HmIP-PCBS2 00199A1234A123:5
DPT {s} HmIP-RF.00199A1234A123:5.COMBINED_PARAMETER = [W]
DPT {f} HmIP-RF.00199A1234A123:5.ON_TIME = [W]
DPT {i} HmIP-RF.00199A1234A123:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:5.SECTION = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:5.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:5.STATE = false [RWE]
CHN 00199A1234A123:6 HmIP-PCBS2 00199A1234A123:6
DPT {s} HmIP-RF.00199A1234A123:6.COMBINED_PARAMETER = [W]
DPT {f} HmIP-RF.00199A1234A123:6.ON_TIME = [W]
DPT {i} HmIP-RF.00199A1234A123:6.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:6.SECTION = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:6.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:6.STATE = false [RWE]
CHN 00199A1234A123:7 HmIP-PCBS2 00199A1234A123:7
DPT {i} HmIP-RF.00199A1234A123:7.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:7.SECTION = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:7.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:7.STATE = false [RE]
CHN 00199A1234A123:8 HmIP-PCBS2 00199A1234A123:8
DPT {s} HmIP-RF.00199A1234A123:8.COMBINED_PARAMETER = [W]
DPT {f} HmIP-RF.00199A1234A123:8.ON_TIME = [W]
DPT {i} HmIP-RF.00199A1234A123:8.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:8.SECTION = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:8.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:8.STATE = false [RWE]
CHN 00199A1234A123:9 HmIP-PCBS2 00199A1234A123:9
DPT {s} HmIP-RF.00199A1234A123:9.COMBINED_PARAMETER = [W]
DPT {f} HmIP-RF.00199A1234A123:9.ON_TIME = [W]
DPT {i} HmIP-RF.00199A1234A123:9.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:9.SECTION = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:9.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:9.STATE = false [RWE]
CHN 00199A1234A123:10 HmIP-PCBS2 00199A1234A123:10
DPT {s} HmIP-RF.00199A1234A123:10.COMBINED_PARAMETER = [W]
DPT {f} HmIP-RF.00199A1234A123:10.ON_TIME = [W]
DPT {i} HmIP-RF.00199A1234A123:10.PROCESS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:10.SECTION = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:10.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.00199A1234A123:10.STATE = false [RWE]
CHN 00199A1234A123:11 HmIP-PCBS2 00199A1234A123:11
DPT {i} HmIP-RF.00199A1234A123:11.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.00199A1234A123:11.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
DPT {i} HmIP-RF.00199A1234A123:11.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = [W]
Internals:
DEF 00199A1234A123 4 8
FUUID 4e34203d-f33f-3256-f92f-d36cdeff2e504e4
IODev HMCCU3
NAME HMIP_PCBS2
NR 3386
STATE 1:on
2:off
TYPE HMCCUDEV
ccuaddr 00199A1234A123
ccudevstate active
ccuif HmIP-RF
ccuname HmIP-PCBS2 00199A1234A123
ccutype HmIP-PCBS2
channels 12
firmware 1.10.10
statevals devstate|on|off
READINGS:
2020-06-26 00:08:04 0.ACTUAL_TEMPERATURE 30.0
2020-06-26 00:20:58 0.CONFIG_PENDING 0
2020-06-26 00:20:58 0.DUTY_CYCLE 0
2020-06-26 00:08:04 0.ERROR_CODE 0
2020-06-26 00:08:04 0.ERROR_OVERHEAT 0
2020-06-26 00:08:04 0.INSTALL_TEST true
2020-06-26 00:08:04 0.OPERATING_VOLTAGE 0.000000
2020-06-26 00:08:04 0.OPERATING_VOLTAGE_STATUS 0
2020-06-26 00:20:58 0.RSSI_DEVICE -50
2020-06-26 00:20:53 0.RSSI_PEER -44
2020-06-26 00:20:58 0.UNREACH 0
2020-06-26 00:08:04 0.UPDATE_PENDING false
2020-06-26 00:15:44 10.PROCESS 0
2020-06-26 00:15:44 10.SECTION 0
2020-06-26 00:15:44 10.SECTION_STATUS 0
2020-06-26 21:39:06 10.STATE 0
2020-06-26 00:08:04 11.WEEK_PROGRAM_CHANNEL_LOCKS 0
2020-06-26 00:20:56 3.PROCESS 0
2020-06-26 00:20:56 3.SECTION 2
2020-06-26 00:20:56 3.SECTION_STATUS 0
2020-06-26 21:46:55 3.STATE 1
2020-06-26 00:20:56 4.PROCESS 0
2020-06-26 00:20:56 4.SECTION 2
2020-06-26 00:20:56 4.SECTION_STATUS 0
2020-06-26 08:57:49 4.STATE 0
2020-06-26 00:20:56 5.PROCESS 0
2020-06-26 00:20:56 5.SECTION 0
2020-06-26 00:20:56 5.SECTION_STATUS 0
2020-06-26 21:46:55 5.STATE 0
2020-06-26 00:20:57 6.PROCESS 0
2020-06-26 00:20:57 6.SECTION 0
2020-06-26 00:20:57 6.SECTION_STATUS 0
2020-06-26 21:46:57 6.STATE 0
2020-06-26 00:15:44 7.PROCESS 0
2020-06-26 00:15:44 7.SECTION 0
2020-06-26 00:15:44 7.SECTION_STATUS 0
2020-06-26 21:39:06 7.STATE 0
2020-06-26 00:15:44 8.PROCESS 0
2020-06-26 00:15:44 8.SECTION 0
2020-06-26 00:15:44 8.SECTION_STATUS 0
2020-06-26 08:57:56 8.STATE 0
2020-06-26 00:15:44 9.PROCESS 0
2020-06-26 00:15:44 9.SECTION 0
2020-06-26 00:15:44 9.SECTION_STATUS 0
2020-06-26 21:39:06 9.STATE 0
2020-06-26 21:46:57 control on
2020-06-26 21:46:57 hmstate on
2020-06-26 20:57:32 on1 off
2020-06-26 20:57:32 on2 off
2020-06-26 21:46:57 state on
2020-06-26 21:46:57 state1 on
2020-06-26 21:39:07 state2 off
hmccu:
devspec 00199A1234A123
dp:
0.ACTUAL_TEMPERATURE:
OVAL 28.000000
VAL 28.000000
0.CONFIG_PENDING:
OVAL 0
VAL 0
0.DUTY_CYCLE:
OVAL 0
VAL 0
0.ERROR_CODE:
OVAL 0
VAL 0
0.ERROR_OVERHEAT:
OVAL false
VAL false
0.INSTALL_TEST:
OVAL true
VAL true
0.OPERATING_VOLTAGE:
OVAL 0.000000
VAL 0.000000
0.OPERATING_VOLTAGE_STATUS:
OVAL 0
VAL 0
0.RSSI_DEVICE:
OVAL -62
VAL -63
0.RSSI_PEER:
OVAL -60
VAL -61
0.UNREACH:
OVAL 0
VAL 0
0.UPDATE_PENDING:
OVAL false
VAL false
10.PROCESS:
OVAL 0
VAL 0
10.SECTION:
OVAL 0
VAL 0
10.SECTION_STATUS:
OVAL 0
VAL 0
10.STATE:
OSVAL false
OVAL false
SVAL 0
VAL 0
11.WEEK_PROGRAM_CHANNEL_LOCKS:
OVAL 0
VAL 0
3.PROCESS:
OVAL 0
VAL 0
3.SECTION:
OVAL 2
VAL 2
3.SECTION_STATUS:
OVAL 0
VAL 0
3.STATE:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
4.PROCESS:
OVAL 0
VAL 0
4.SECTION:
OVAL 2
VAL 2
4.SECTION_STATUS:
OVAL 0
VAL 0
4.STATE:
OSVAL on
OVAL 1
SVAL on
VAL 1
5.PROCESS:
OVAL 0
VAL 0
5.SECTION:
OVAL 0
VAL 0
5.SECTION_STATUS:
OVAL 0
VAL 0
5.STATE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
6.PROCESS:
OVAL 0
VAL 0
6.SECTION:
OVAL 0
VAL 0
6.SECTION_STATUS:
OVAL 0
VAL 0
6.STATE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
7.PROCESS:
OVAL 0
VAL 0
7.SECTION:
OVAL 0
VAL 0
7.SECTION_STATUS:
OVAL 0
VAL 0
7.STATE:
OSVAL false
OVAL false
SVAL 0
VAL 0
8.PROCESS:
OVAL 0
VAL 0
8.SECTION:
OVAL 0
VAL 0
8.SECTION_STATUS:
OVAL 0
VAL 0
8.STATE:
OSVAL off
OVAL false
SVAL off
VAL 0
9.PROCESS:
OVAL 0
VAL 0
9.SECTION:
OVAL 0
VAL 0
9.SECTION_STATUS:
OVAL 0
VAL 0
9.STATE:
OSVAL false
OVAL false
SVAL 0
VAL 0
Attributes:
IODev HMCCU3
alexaName Bekant
alias Bekant
ccureadingfilter STATE
ccureadingname 0.OPERATING_VOLTAGE:battery;4.STATE:state1;8.STATE:state2
devStateIcon 1.on:ios-on-green:off 1.off:ios-off:on 2.on:ios-on-green:off 2.off:ios-off:on
event-on-change-reading .*
eventMap /datapoint 4.STATE 1:state1 on/datapoint 4.STATE 0:state1 off/datapoint 8.STATE 1:state2 on/datapoint 8.STATE 0:state2 off/
genericDeviceType switch
group SCHALTER
room HomeMaticIP,Schalter
stateFormat 1:state1
2:state2
statedatapoint 4.STATE
statevals on:1,off:0
substitute 4.STATE!(0|false):off,(1|true):on;8.STATE!(0|false):off,(1|true):on
Ich würde 2 HMCCUCHN Devices definieren, für jeden Kanal eins.
Oder du verwendest den Befehl set datapoint zum Schalten, also z.B.
set xy datapoint 4.STATE 1
Hallo zusammen,
habe heute einen HM-Sen-DB-PCB (Klingelsensor) an der CCU angelernt.
Leider noch keine Beispiel Defenitionen dafür vorhanden.
Hat den zufällig jemand schon fertig definert?
Ich brauche in Fhem ja nur Klingel ja/nein, da müsste doch auch ein CCUCHAN auf Kanal 1 reichen?
IODev HMCCU
NAME EG_FL_DB
NR 2389
STATE ???
TYPE HMCCUDEV
ccuaddr
ccudevstate active
ccuif BidCos-RF
ccuname EG_FL_DB
ccutype HM-Sen-DB-PCB
channels 2
statevals devstate
READINGS:
2020-09-23 16:39:03 0.AES_KEY off
2020-09-23 17:59:25 0.CONFIG_PENDING 0
2020-09-23 16:39:03 0.DEVICE_IN_BOOTLOADER false
2020-09-23 16:39:03 0.RSSI_DEVICE 1
2020-09-23 16:39:03 0.RSSI_PEER 205
2020-09-23 16:39:03 0.STICKY_UNREACH false
2020-09-23 16:39:03 0.UPDATE_PENDING false
2020-09-23 17:59:25 1.INSTALL_TEST 1
2020-09-23 17:59:25 1.PRESS_SHORT 1
2020-09-23 16:39:03 activity alive
2020-09-23 16:39:03 battery ok
Mach mal bitte ein "get deviceinfo"
CHN MEQ0045230:0 EG_FL_DB:0
DPT {b} BidCos-RF.MEQ0045230:0.UNREACH = false [RE]
DPT {b} BidCos-RF.MEQ0045230:0.STICKY_UNREACH = false [RWE]
DPT {b} BidCos-RF.MEQ0045230:0.CONFIG_PENDING = false [RE]
DPT {b} BidCos-RF.MEQ0045230:0.LOWBAT = false [RE]
DPT {n} BidCos-RF.MEQ0045230:0.RSSI_DEVICE = 1 [RE]
DPT {n} BidCos-RF.MEQ0045230:0.RSSI_PEER = 205 [RE]
DPT {b} BidCos-RF.MEQ0045230:0.DEVICE_IN_BOOTLOADER = false [RE]
DPT {b} BidCos-RF.MEQ0045230:0.UPDATE_PENDING = false [RE]
DPT {n} BidCos-RF.MEQ0045230:0.AES_KEY = 0 [R]
CHN MEQ0045230:1 EG_FL_DB:1
DPT {b} BidCos-RF.MEQ0045230:1.PRESS_SHORT = false [WE]
DPT {b} BidCos-RF.MEQ0045230:1.INSTALL_TEST = false [E]
DPT {b} BidCos-RF.MEQ0045230:1.PRESS_CONT = [E]
Hallo,
Zitat von: Jamo am 26 Juni 2020, 21:53:43
Ich habe einen HmIP-PCBS2, das ist ein 2-Kanal Schalter
ich habe den HmIP-PCBS und versuche erfolglos
set Schaltplatine on-for-timer 5
auszuführen.
Als Ergebnis bekomme ich:
Usage: set Schaltplatine datapoint [{channel-number}.]{datapoint} {value} [...]
Internals
DEF 000458A98C95C2
FUUID
IODev d_ccu
NAME. Schaltplatine
NR 796
STATE off
TYPE HMCCUDEV
ccuaddr 000458A98C95C2
ccudevstate active
ccuif HmIP-RF
ccuname Schaltplatine
ccutype HmIP-PCBS
channels 7
firmware 2.10.2
statevals devstate|on|off
Readings
2.SECTION. 0 2020-09-25 21:10:39
2.SECTION_STATUS 0 2020-09-25 21:10:39
2.STATE off 2020-09-25 21:10:39
3.SECTION 0 2020-09-25 21:10:39
3.SECTION_STATUS 0 2020-09-25 21:10:39
3.STATE off 2020-09-25 21:10:39
4.SECTION 0 2020-09-25 21:10:39
4.SECTION_STATUS 0 2020-09-25 21:10:39
4.STATE off 2020-09-25 21:10:39
5.SECTION 0 2020-09-25 21:10:39
5.SECTION_STATUS 0 2020-09-25 21:10:39
5.STATE off 2020-09-25 21:10:39
activity alive 2020-09-25 21:10:39
control off 2020-09-25 21:10:39
hmstate off 2020-09-25 21:10:39
state off 2020-09-25 21:10:39
und Atrr
IODev d_ccu
ccureadingfilter ^STATE|^SECTION|^ON_TIME
controldatapoint 3.STATE
devStateIcon .*1:black_Steckdose.on .*0:black_Steckdose.off
eventMap /datapoint 3.STATE true:on/datapoint 3.STATE false:off
room Bewegung
statedatapoint 3.STATE
statevals on:true,off:false
substitute STATE!(0|false):off,(1|true):on
Ist das jemanden schon gelungen?
Grüße
Martin
Machst Du mal bitte ein "get deviceinfo" ?
get deviceinfo ergibt:
CHN 000458A98C95C2:0 Schaltplatine:0
DPT {f} HmIP-RF.000458A98C95C2:0.ACTUAL_TEMPERATURE = 25.000000 [RE]
DPT {i} HmIP-RF.000458A98C95C2:0.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.000458A98C95C2:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.000458A98C95C2:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.000458A98C95C2:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.000458A98C95C2:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.000458A98C95C2:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.000458A98C95C2:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.000458A98C95C2:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.000458A98C95C2:0.RSSI_DEVICE = 165 [RE]
DPT {n} HmIP-RF.000458A98C95C2:0.RSSI_PEER = 173 [RE]
DPT {b} HmIP-RF.000458A98C95C2:0.UNREACH = false [RE]
DPT {b} HmIP-RF.000458A98C95C2:0.UPDATE_PENDING = false [RE]
CHN 000458A98C95C2:1 HmIP-PCBS 000458A98C95C2:1
DPT {b} HmIP-RF.000458A98C95C2:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.000458A98C95C2:1.PRESS_SHORT = [E]
CHN 000458A98C95C2:2 HmIP-PCBS 000458A98C95C2:2
DPT {i} HmIP-RF.000458A98C95C2:2.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:2.SECTION = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:2.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000458A98C95C2:2.STATE = false [RE]
CHN 000458A98C95C2:3 HmIP-PCBS 000458A98C95C2:3
DPT {f} HmIP-RF.000458A98C95C2:3.ON_TIME = [W]
DPT {i} HmIP-RF.000458A98C95C2:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:3.SECTION = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:3.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000458A98C95C2:3.STATE = false [RWE]
CHN 000458A98C95C2:4 HmIP-PCBS 000458A98C95C2:4
DPT {f} HmIP-RF.000458A98C95C2:4.ON_TIME = [W]
DPT {i} HmIP-RF.000458A98C95C2:4.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:4.SECTION = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:4.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000458A98C95C2:4.STATE = false [RWE]
CHN 000458A98C95C2:5 HmIP-PCBS 000458A98C95C2:5
DPT {f} HmIP-RF.000458A98C95C2:5.ON_TIME = [W]
DPT {i} HmIP-RF.000458A98C95C2:5.PROCESS = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:5.SECTION = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:5.SECTION_STATUS = 0 [RE]
DPT {b} HmIP-RF.000458A98C95C2:5.STATE = false [RWE]
CHN 000458A98C95C2:6 HmIP-PCBS 000458A98C95C2:6
DPT {i} HmIP-RF.000458A98C95C2:6.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.000458A98C95C2:6.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
mit besten Grüßen
Martin
Eigentlich sieht das alles korrekt aus. Versuche mal:
set Schaltplatine datapoint 3.ON_TIME 5 3.STATE true
Bietet Dir das set Menü den on-for-timer Befehl an?
Zitat von: zap am 26 September 2020, 20:16:53
set Schaltplatine datapoint 3.ON_TIME 5 3.STATE true
Danke! Ja, so geht es!
Zitat
Bietet Dir das set Menü den on-for-timer Befehl an?
Ja, das tut es. Aber es funktioniert nicht. Bekomme die besagte Fehlermeldung.
Mit besten Grüßen
Martin
Ich glaube, dein eventmap Attribut ist das Problem. Am Ende fehlt ein /
Zitat von: zap am 26 September 2020, 21:29:00
Ich glaube, dein eventmap Attribut ist das Problem. Am Ende fehlt ein /
ja, dort lag das Problem in der Tat! ( kein space zwischen Anweisungen)
Danke!
Ich habe einen Schaltaktor (HM-LC-Sw2-FM) mit einem Bewegungsmelder (HM-Sen-MDIR-O-3) verbunden. Rein technisch funktioniert auch alles und dank hilfreicher Einträge in dem Thread kann ich den Bewegungsmelder in FHEM auslesen.
Leider kann ich den Schwellwert, ab wann der Aktor schalten soll, nur über die Web-GUI eintragen. Wie kann ich das per FHEM setzen?
list BM_Garten_Tor
Internals:
CFGFN
DEF QEQ0894419 1
FUUID 5f8736f7-f33f-b0e2-c60c-50893b9419746a57
IODev hmccu2
NAME BM_Garten_Tor
NR 61577
STATE noMotion
TYPE HMCCUDEV
ccuaddr QEQ0894419
ccudevstate active
ccuif BidCos-RF
ccuname HM-Sen-MDIR-O-3 QEQ0894419
ccutype HM-Sen-MDIR-O-3
channels 2
statevals devstate
READINGS:
2020-10-14 19:37:10 0.LOWBAT no
2020-10-14 19:37:10 0.UNREACH false
2020-10-14 19:44:39 1.BRIGHTNESS 2
2020-10-14 19:37:10 1.MOTION noMotion
2020-10-14 19:37:10 control noMotion
2020-10-14 19:44:39 hmstate noMotion
2020-10-14 19:37:10 state noMotion
hmccu:
devspec QEQ0894419
dp:
0.AES_KEY:
OVAL 0
VAL 0
0.CONFIG_PENDING:
OVAL false
VAL false
0.DEVICE_IN_BOOTLOADER:
OVAL false
VAL false
0.LOWBAT:
OSVAL no
OVAL false
SVAL no
VAL false
0.RSSI_DEVICE:
OVAL 1
VAL 1
0.RSSI_PEER:
OVAL 218
VAL 218
0.STICKY_UNREACH:
OVAL false
VAL false
0.UNREACH:
OSVAL false
OVAL false
SVAL false
VAL false
0.UPDATE_PENDING:
OVAL false
VAL false
1.BRIGHTNESS:
OSVAL 2
OVAL 2
SVAL 2
VAL 2
1.MOTION:
OSVAL noMotion
OVAL false
SVAL noMotion
VAL false
Attributes:
IODev hmccu2
ccureadingfilter (^UNREACH|^LOWBAT$|MOTION|PRESS|BRIGHTNESS)
ccureadingformat datapoint
ccureadings 1
ccuverify 2
event-on-change-reading .*
room Garten,Sensoren->Bewegungsmelder
sortby 2
statechannel 1
statedatapoint 1.MOTION
substitute MOTION!(0|false):noMotion,(1|true):motion;;LOWBAT!(0|false):no,(1|true):yes
und der Switch:
list SW_Garten_Tor
Internals:
DEF QEQ1072053:2
FUUID 5f575813-f33f-b0e2-1957-c7f9d574d8e2f1d0
IODev hmccu2
NAME SW_Garten_Tor
NR 199
STATE off
TYPE HMCCUCHN
ccudevstate pending
channels 1
statevals devstate|on|off
READINGS:
2020-09-24 16:41:06 2.STATE off
2020-09-24 16:41:06 2.WORKING 0
2020-09-24 16:41:06 control off
2020-10-05 13:36:18 hmstate off
2020-09-24 16:41:06 state off
hmccu:
devspec QEQ1072053:2
Attributes:
IODev hmccu2
ccureadings 1
statevals on:true,off:false
substitute STATE!1:on,0:off
Guten Morgen,
hat schon jemand einen HmIP-eTRV-2 am laufen, vor allem in Verbindung mit weekprofile?
Ich bekomme keine Readings für den Wochenplan.
list vom device:
Internals:
DEF 000A18A996XXXX
FUUID 5f7876c1-f33f-6319-a7ab-xxxxxxx
IODev d_ccu
NAME HmIP_eTRV_2_000A18A996XXXX
NR 405
STATE 17.0
TYPE HMCCUDEV
ccuaddr xxxxxxx
ccudevstate active
ccuif HmIP-RF
ccuname Heizung WC
ccutype HmIP-eTRV-2
channels 8
firmware 2.2.8
statevals devstate
Helper:
DBLOG:
1.ACTUAL_TEMPERATURE:
logdb:
TIME 1602839566.53129
VALUE 22.6
1.BOOST_MODE:
logdb:
TIME 1602839566.53129
VALUE 0
1.SET_POINT_TEMPERATURE:
logdb:
TIME 1602839566.53129
VALUE 17.0
valve_position:
logdb:
TIME 1602838650.31821
VALUE 0
READINGS:
2020-10-16 11:12:46 0.CONFIG_PENDING 0
2020-10-16 11:12:46 0.DUTY_CYCLE 0
2020-10-16 10:57:30 0.INSTALL_TEST true
2020-10-16 11:12:46 0.LOW_BAT 0
2020-10-16 11:12:46 0.OPERATING_VOLTAGE 3.0
2020-10-16 11:12:46 0.OPERATING_VOLTAGE_STATUS 0
2020-10-16 11:12:46 0.RSSI_DEVICE -44
2020-10-16 10:57:30 0.RSSI_PEER 202
2020-10-16 11:12:46 0.UNREACH 0
2020-10-16 10:57:30 0.UPDATE_PENDING false
2020-10-16 11:12:46 1.ACTIVE_PROFILE 1
2020-10-16 11:12:46 1.ACTUAL_TEMPERATURE 22.6
2020-10-16 11:12:46 1.ACTUAL_TEMPERATURE_STATUS 0
2020-10-16 11:12:46 1.BOOST_MODE 0
2020-10-16 11:12:46 1.BOOST_TIME 0
2020-10-16 11:12:46 1.FROST_PROTECTION 0
2020-10-16 11:12:46 1.PARTY_MODE 0
2020-10-16 10:57:30 1.PARTY_SET_POINT_TEMPERATURE 0.0
2020-10-16 10:57:30 1.PARTY_TIME_END
2020-10-16 10:57:30 1.PARTY_TIME_START
2020-10-16 11:12:46 1.QUICK_VETO_TIME 0
2020-10-16 11:12:46 1.SET_POINT_MODE 0
2020-10-16 11:12:46 1.SET_POINT_TEMPERATURE 17.0
2020-10-16 11:12:46 1.SWITCH_POINT_OCCURED 0
2020-10-16 10:57:30 1.VALVE_ADAPTION false
2020-10-16 11:12:46 1.VALVE_STATE 4
2020-10-16 11:12:46 1.WINDOW_STATE closed
2020-10-16 11:12:46 control 17.0
2020-10-16 11:12:46 hmstate 17.0
2020-10-16 11:12:46 state 17.0
2020-10-16 11:12:46 valve_position 0
2020-10-16 11:12:46 valve_position_STATUS 0
hmccu:
devspec 000A18A996XXXX
dp:
0.CONFIG_PENDING:
OSVAL false
OVAL false
SVAL 0
VAL 0
0.DUTY_CYCLE:
OSVAL false
OVAL false
SVAL 0
VAL 0
0.INSTALL_TEST:
OSVAL true
OVAL true
SVAL true
VAL true
0.LOW_BAT:
OSVAL false
OVAL false
SVAL 0
VAL 0
0.OPERATING_VOLTAGE:
OSVAL 3.0
OVAL 3.000000
SVAL 3.0
VAL 3.0
0.OPERATING_VOLTAGE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.RSSI_DEVICE:
OSVAL 212
OVAL 212
SVAL -44
VAL -44
0.RSSI_PEER:
OSVAL 202
OVAL 202
SVAL 202
VAL 202
0.UNREACH:
OSVAL false
OVAL false
SVAL 0
VAL 0
0.UPDATE_PENDING:
OSVAL false
OVAL false
SVAL false
VAL false
1.ACTIVE_PROFILE:
OSVAL 1
OVAL 1
SVAL 1
VAL 1
1.ACTUAL_TEMPERATURE:
OSVAL 22.6
OVAL 22.600000
SVAL 22.6
VAL 22.6
1.ACTUAL_TEMPERATURE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.BOOST_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.BOOST_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.FROST_PROTECTION:
OSVAL false
OVAL false
SVAL 0
VAL 0
1.LEVEL:
OSVAL 0
OVAL 0.000000
SVAL 0
VAL 0.0
1.LEVEL_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.PARTY_MODE:
OSVAL false
OVAL false
SVAL 0
VAL 0
1.PARTY_SET_POINT_TEMPERATURE:
OSVAL 0.0
OVAL 0.000000
SVAL 0.0
VAL 0.000000
1.PARTY_TIME_END:
OSVAL
OVAL
SVAL
VAL
1.PARTY_TIME_START:
OSVAL
OVAL
SVAL
VAL
1.QUICK_VETO_TIME:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.SET_POINT_MODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
1.SET_POINT_TEMPERATURE:
OSVAL 17.0
OVAL 17.000000
SVAL 17.0
VAL 17.0
1.SWITCH_POINT_OCCURED:
OSVAL false
OVAL false
SVAL 0
VAL 0
1.VALVE_ADAPTION:
OSVAL false
OVAL false
SVAL false
VAL false
1.VALVE_STATE:
OSVAL 4
OVAL 4
SVAL 4
VAL 4
1.WINDOW_STATE:
OSVAL closed
OVAL 0
SVAL closed
VAL 0
Attributes:
DbLogInclude 1.ACTUAL_TEMPERATURE,1.SET_POINT_TEMPERATURE,1.BOOST_MODE,valve_position
IODev d_ccu
alias Heizung WC
ccureadingname 1.LEVEL:valve_position
ccuscaleval LEVEL:0:1:0:100
controldatapoint 1.SET_POINT_TEMPERATURE
event-min-interval valve_position:3600
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.CONTROL_MODE 1 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.CONTROL_MODE 0 1.SET_POINT_TEMPERATURE 30.5:on/datapoint 1.WINDOW_STATE 0:WindowClosed/datapoint 1.WINDOW_STATE 1:WindowOpen
group Heizung
room EG->WC
statedatapoint 1.SET_POINT_TEMPERATURE
stripnumber 1
substexcl control
substitute SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open
webCmd control:Boost:Auto:Manual:Holiday:on:off
widgetOverride control:slider,4.5,0.5,30.5,1
Weekprofile:
Internals:
CONFIGFILE ./log/weekprofile-wp_HeizWC.cfg
DEF HmIP_eTRV_2_000A18A996XXXX
FUUID 5f8944aa-f33f-6319-9c0e-xxxxxxxxx
NAME wp_HeizWC
NR 408
NTFY_ORDER 50-wp_HeizWC
STATE assigned
TYPE weekprofile
MASTERDEV:
NAME HmIP_eTRV_2_000A18A996XXXX
TYPE HMCCU_IP
PROFILES:
HASH(0x6af30a8)
HASH(0x6af3168)
HASH(0x6af33d8)
READINGS:
2020-10-16 11:12:46 profile_count 3
2020-10-16 10:57:21 state assigned
SNDDEVLIST:
HASH(0x6aec8f8)
HASH(0x6aed018)
HASH(0x6ccae80)
HASH(0x6be8538)
HASH(0x6b91fb0)
HASH(0x6a5bf50)
HASH(0x6b9b858)
HASH(0x6c352c8)
HASH(0x6b8d3d0)
HASH(0x6a220f0)
HASH(0x5e51900)
HASH(0x6b90260)
HASH(0x6c48518)
HASH(0x6adefd0)
HASH(0x6a92a78)
HASH(0x6c43390)
HASH(0x6e40778)
HASH(0x6c0d030)
HASH(0x6ba2208)
HASH(0x705de90)
HASH(0x6a9b920)
HASH(0x6ec6f70)
HASH(0x6c47198)
HASH(0x6be3a00)
HASH(0x6ae4d38)
HASH(0x6adefb8)
HASH(0x6c3a6e0)
HASH(0x6e485c8)
HASH(0x6b896f0)
HASH(0x6b932c8)
HASH(0x6c1eea8)
HASH(0x6b85c68)
HASH(0x6a98288)
TOPICS:
default
Attributes:
room Steuerung->Heizung->Generell
Log-Auszug:
2020.10.16 11:12:46 3: WARNING master device HmIP_eTRV_2_000A18A996XXXX has no week profile - create default
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for MONDAY found
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for TUESDAY found
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for WEDNESDAY found
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for THURSDAY found
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for FRIDAY found
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for SATURDAY found
2020.10.16 11:12:46 2: wp_HeizWC(readDayProfile): no readings for SUNDAY found
Ich hab auch mal meine Weekprofile-Config gepostet, gehe aber eher davon aus, dass es am eTRV-2 liegt. Ich hab noch 2 weitere im Einsatz, aber von keinem bekomme ich die Wochenplan-Readings. Auch nicht mit "get config".
FHEM ist aktuell und neu gestartet. Hat jemand eine Beispiel-Definition für mich oder sieht meinen Fehler?
Danke und Grüße
Sascha
Ich würde mal ccureadingfilter auf .* setzen.
Dann mal "get config 1" ausführen. Wenn Du die 1 weglässt, liest er nur die Config Parameter vom Device, nicht die vom Kanal.
Hi zap,
mit dem ccureadingfilter hatte ich schon gespielt. Aber das "get config 1" die Kanalparameter liest, wusste ich noch nicht. Funktioniert jetzt. Vielen Dank und schönes Wochenende.
Moin zusammen,
gibt es keine Möglichkeit, den aktuellen Betriebsmodus von HM-IP Wandthermostat und Heizkörperthermostaten auszulesen?
Viele Grüße
Sebastian
Zitat von: Borkk am 25 April 2020, 16:04:10
Hallo Zusammen,
ich habe da mal eine Frage bei der ich bisher nicht fündig wurde. Ich habe meine schon viele Jahre alte Homematic Anbindung von HM-MOD-RPI-PCB (HMUARTGW) auf HMCCU via RPI-RF-MOD (Raspberrymatic) umgestellt. Der Grund war, das ich HmIP Geräte einbinden wollte und mich eben für HmIP öffnen wollte. Der Umstieg war bei über 40 HM Geräten zwar sehr aufwendig, hat aber gut funktioniert. Leider sind die Schaltzeiten jetzt deutlich länger aber evtl. kann ich da noch was optimieren.
Meine eigentliche Frage dreht sich um das 16fach LED Modul HM-OU-LED16. Mit der alten Anbindung konnte ich mit dem Befehl
"set 16_LED ilum 1 3" oder "set 16_LED ilum 2 0"
das Panel in der Nacht oder bei Abwesenheit aus- bzw. einschalten. Dabei hat sich das Panel die Zustände der einzelnen LEDs behalten. Ich finde einen vergleichbaren Befehl weder für einen HMCCUCHN Channel noch für einen HMCCUDEV Device.
Da ich per PN gefragt wurde, ob ich eine Lösung gefunden habe, möchte ich Sie hier für alle posten. Im Grunde ist sie ganz simpel, leider nur schlecht dokumentiert.
Um das LED Panel mit dem Namen "16_LED" nach 3 sec auszuschalten:
set 16_LED config DISPLAY_ENERGYOPTIONS=3.0
Um es dauerhaft leuchten zu lassen:
set 16_LED config DISPLAY_ENERGYOPTIONS=0.0
Die Helligkeit stellt man ein über:
set 16_LED config DISPLAY_BRIGHTNESS=2
Die Doku zu BidCos-RF ist tatsächlich bescheiden bzw. nicht vorhanden. Bei HmIP ist es deutlich besser. Da sind alle Gerätetypen mit ihren Kanälen und Parametern beschrieben.
Ich habe in HMCCU über debmatic (Raspberry Pi 2B) einen HM-Sec-SCo-Sensor wie hier beschrieben eingebunden:
define BadezimmerFensterkontakt HMCCUCHN BadezimmerFensterkontakt:1 readonly
attr BadezimmerFensterkontakt ccureadingfilter (ERROR|LOWBAT|STATE)
attr BadezimmerFensterkontakt event-on-change-reading .*
attr BadezimmerFensterkontakt substitute STATE!(0|false):closed,(1|true):open;;LOWBAT!(0|false):no,(1|true):yes
Die Einbindung in FHEM funktioniert problemlos. Ich möchte diesen Sensor noch in Homebridge abbilden. Habe dazu das Attribut genericDeviceType gesetzt, da der Sensor sonst gar nicht eingebunden wird:
BadezimmerFensterkontakt: no service type detected
[01/02/2021, 22:20:53] [FHEM] no accessory created for BadezimmerFensterkontakt (HMCCUCHN)
attr BadezimmerFensterkontakt genericDeviceType ContactSensor
Allerdings scheint nur der Batteriestatus in Homebridge eingelesen zu werden:
[01/02/2021, 22:36:13] [FHEM] mappings for BadezimmerFensterkontakt: {
StatusLowBattery: {
reading: 'battery',
values: [ 'ok:BATTERY_LEVEL_NORMAL', '/.*/:BATTERY_LEVEL_LOW' ]
}
}
[01/02/2021, 22:36:13] [FHEM] BadezimmerFensterkontakt is ContactSensor
[01/02/2021, 22:36:13] [FHEM] BadezimmerFensterkontakt has
[01/02/2021, 22:36:13] [FHEM] StatusLowBattery [battery]
[01/02/2021, 22:36:13] [FHEM] value2homekit_re: [ { re: '.*', to: 1 } ]
[01/02/2021, 22:36:13] [FHEM] value2homekit: { ok: 0 }
[01/02/2021, 22:36:13] [FHEM] homekit2name: { '0': 'BATTERY_LEVEL_NORMAL', '1': 'BATTERY_LEVEL_LOW' }
2021-02-01 22:36:13 caching: BadezimmerFensterkontakt-battery: no
[01/02/2021, 22:36:13] [FHEM] BadezimmerFensterkontakt-battery values: value no mapped to 1
[01/02/2021, 22:36:13] [FHEM] caching: StatusLowBattery: 1 (as number; means BATTERY_LEVEL_LOW; from 'no')
[01/02/2021, 22:36:13] Initializing platform accessory 'BadezimmerFensterkontakt'...
[01/02/2021, 22:36:13] [FHEM] creating services for BadezimmerFensterkontakt
[01/02/2021, 22:36:13] [FHEM] information service for BadezimmerFensterkontakt
[01/02/2021, 22:36:13] [FHEM] manufacturer, model and serial number characteristics for BadezimmerFensterkontakt
[01/02/2021, 22:36:13] [FHEM] name (siriName) characteristic for BadezimmerFensterkontakt
[01/02/2021, 22:36:13] [FHEM] ContactSensor service for BadezimmerFensterkontakt
[01/02/2021, 22:36:13] [FHEM] StatusLowBattery characteristic for BadezimmerFensterkontakt:battery
[01/02/2021, 22:36:13] [FHEM] initial value is: 1 (number; means BATTERY_LEVEL_LOW)
[01/02/2021, 22:36:13] [FHEM] props: {
format: 'uint8',
unit: null,
minValue: 0,
maxValue: 1,
minStep: null,
perms: [ 'pr', 'ev' ],
validValues: [ 0, 1 ]
}
Auch mit dem genericDeviceType "window" erhalte ich die gleichen Meldungen. Kann ich die Konfiguration anpassen, sodass die Homebridge-Integration funktioniert? Oder wo liegt der Fehler?
Besten Dank!
Zitat von: raspberry am 01 Februar 2021, 22:45:28
Kann ich die Konfiguration anpassen, sodass die Homebridge-Integration funktioniert? Oder wo liegt der Fehler?
Das Mapping muss manuell durchgeführt werden:
attr Hm_BadezimmerFensterkontakt genericDeviceType contact
attr Hm_BadezimmerFensterkontakt homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;;open:CONTACT_NOT_DETECTED StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW
Hi zusammen,
ich hab gestern die neue FW(3.57.4.20210320) aufgespielt, seit dem empfängt mein HM-Sen-MDIR-WM55 und HM-Sec-SC-2 keine Bewegungen mehr in FHEM, im Webinterface der CUU gehts allerdings noch.Die restlichen Geräte funktionieren noch. Hat jemand einen Tipp?
defmod HM_Sensor_Door_Bad HMCCUCHN NEQ0757387:1
attr HM_Sensor_Door_Bad IODev d_ccu
attr HM_Sensor_Door_Bad devStateIcon 1:fts_door_open 0:fts_door
attr HM_Sensor_Door_Bad icon fts_door
attr HM_Sensor_Door_Bad room Bad
Wo hast Du die Firmware installiert? Auf den Bewegungssensoren?
Zitat von: zap am 22 März 2021, 15:23:51
Wo hast Du die Firmware installiert? Auf den Bewegungssensoren?
Hi Zap,
nein auf meinem Raspimatic ( Raspi 3 mit Shield https://github.com/jens-maus/RaspberryMatic/releases/tag/3.57.4.20210320 (https://github.com/jens-maus/RaspberryMatic/releases/tag/3.57.4.20210320)). Leider weiß ich auch nicht wie ich das Debuggen könnte um mehr Infos bereit zu stellen.
VG Breezy
Beim CCU Firmware Update wird die CCU neu gestartet. Dabei vergisst die CCU leider die registrierten RPC Server.
Versuche es mal mit dem Befehl
set d_ccu rpcregister
Falls das nicht hilft:
set d_ccu rpcserver off
set d_ccu rpcserver on
Wahnsinn! Danke das hat geklappt!
Hallo zusammen,
mir gelingt es nicht, die PRESS_LONG bzw. PRESS_SHORT Signale in FHEM abzubilden via HMCCUCHN, es handelt sich um einen HmIP-BDT. Im Event Monitor finde ich keinen Hinweis auf ein PRESS_.* Reading. Es wird auch keins gesetzt am Device selbst.
Folgendes habe ich angelegt:
Internals:
CFGFN
DEF 0008DA49929523:1
FUUID 60631990-f33f-3db1-cdb3-e6deaf8a964fad60
IODev Interface_HomeMatic
NAME Dev_EG_Kueche_Wandtaster_Unten
NR 708
STATE ???
TYPE HMCCUCHN
ccuaddr 0008DA49929523:1
ccudevstate active
ccuif HmIP-RF
ccuname Kueche_Licht_Decke_unten
ccutype HmIP-BDT
channels 1
statevals devstate
.attraggr:
.attrminint:
READINGS:
2021-03-30 19:57:42 0.ACTUAL_TEMPERATURE 0.000000
2021-03-30 19:57:42 0.ACTUAL_TEMPERATURE_STATUS 0
2021-03-30 21:18:28 0.CONFIG_PENDING 0
2021-03-30 21:18:28 0.DUTY_CYCLE 0
2021-03-30 21:18:26 0.ERROR_CODE 0
2021-03-30 21:18:26 0.ERROR_OVERHEAT 0
2021-03-30 21:18:26 0.ERROR_OVERLOAD 0
2021-03-30 21:18:26 0.ERROR_UPDATE 0
2021-03-30 19:57:42 0.INSTALL_TEST true
2021-03-30 19:57:42 0.OPERATING_VOLTAGE 0.000000
2021-03-30 19:57:42 0.OPERATING_VOLTAGE_STATUS 0
2021-03-30 21:18:28 0.RSSI_DEVICE -99
2021-03-30 20:59:32 0.RSSI_PEER -100
2021-03-30 21:18:28 0.UNREACH 0
2021-03-30 19:57:42 0.UPDATE_PENDING false
2021-03-30 21:25:30 R-1.DBL_PRESS_TIME 0.0
2021-03-30 21:25:30 R-1.LONG_PRESS_TIME 0.4
2021-03-30 21:25:30 R-1.REPEATED_LONG_PRESS_TIMEOUT_UNIT 2
2021-03-30 21:25:30 R-1.REPEATED_LONG_PRESS_TIMEOUT_VALUE 2
2021-03-30 21:14:41 hmstate unreachable
hmccu:
devspec 0008DA49929523:1
dp:
0.ACTUAL_TEMPERATURE:
OSVAL 0.000000
OVAL 0.000000
SVAL 0.000000
VAL 0.000000
0.ACTUAL_TEMPERATURE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.CONFIG_PENDING:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.DUTY_CYCLE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.ERROR_CODE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.ERROR_OVERHEAT:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.ERROR_OVERLOAD:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.ERROR_UPDATE:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.INSTALL_TEST:
OSVAL true
OVAL true
SVAL true
VAL true
0.OPERATING_VOLTAGE:
OSVAL 0.000000
OVAL 0.000000
SVAL 0.000000
VAL 0.000000
0.OPERATING_VOLTAGE_STATUS:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.RSSI_DEVICE:
OSVAL -99
OVAL -101
SVAL -99
VAL -100
0.RSSI_PEER:
OSVAL -98
OVAL -104
SVAL -100
VAL -99
0.UNREACH:
OSVAL 0
OVAL 0
SVAL 0
VAL 0
0.UPDATE_PENDING:
OSVAL false
OVAL false
SVAL false
VAL false
Attributes:
IODev Interface_HomeMatic
ccureadingfilter (^PRESS_SHORT|^PRESS_LONG|^LOWBAT$)
Das Attribut für ccurradingfilter habe ich über die Forensuche gefunden.
Das deviceinfo gibt zurück:
CHN 0008DA49929523:0 Kueche_Licht_Decke:0
DPT {f} HmIP-RF.0008DA49929523:0.ACTUAL_TEMPERATURE = 0.000000 [RE]
DPT {i} HmIP-RF.0008DA49929523:0.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {b} HmIP-RF.0008DA49929523:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.0008DA49929523:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.0008DA49929523:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.0008DA49929523:0.ERROR_OVERHEAT = false [RE]
DPT {b} HmIP-RF.0008DA49929523:0.ERROR_OVERLOAD = false [RE]
DPT {b} HmIP-RF.0008DA49929523:0.ERROR_UPDATE = false [RE]
DPT {b} HmIP-RF.0008DA49929523:0.INSTALL_TEST = true [RW]
DPT {f} HmIP-RF.0008DA49929523:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {i} HmIP-RF.0008DA49929523:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
DPT {n} HmIP-RF.0008DA49929523:0.RSSI_DEVICE = 155 [RE]
DPT {n} HmIP-RF.0008DA49929523:0.RSSI_PEER = 157 [RE]
DPT {b} HmIP-RF.0008DA49929523:0.UNREACH = false [RE]
DPT {b} HmIP-RF.0008DA49929523:0.UPDATE_PENDING = false [RE]
CHN 0008DA49929523:1 Kueche_Licht_Decke_unten
DPT {b} HmIP-RF.0008DA49929523:1.PRESS_LONG = [E]
DPT {b} HmIP-RF.0008DA49929523:1.PRESS_SHORT = [E]
CHN 0008DA49929523:2 Kueche_Licht_Decke_oben
DPT {b} HmIP-RF.0008DA49929523:2.PRESS_LONG = [E]
DPT {b} HmIP-RF.0008DA49929523:2.PRESS_SHORT = [E]
CHN 0008DA49929523:3 HmIP-BDT 0008DA49929523:3
DPT {i} HmIP-RF.0008DA49929523:3.ACTIVITY_STATE = 0 [RE]
DPT {a} HmIP-RF.0008DA49929523:3.LEVEL = 0.000000 [RE]
DPT {i} HmIP-RF.0008DA49929523:3.LEVEL_STATUS = 0 [RE]
DPT {i} HmIP-RF.0008DA49929523:3.PROCESS = 0 [RE]
DPT {i} HmIP-RF.0008DA49929523:3.SECTION = 15 [RE]
DPT {i} HmIP-RF.0008DA49929523:3.SECTION_STATUS = 0 [RE]
CHN 0008DA49929523:4 HmIP-BDT 0008DA49929523:4
DPT {i} HmIP-RF.0008DA49929523:4.ACTIVITY_STATE = 3 [RE]
DPT {s} HmIP-RF.0008DA49929523:4.COMBINED_PARAMETER = [W]
DPT {a} HmIP-RF.0008DA49929523:4.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.0008DA49929523:4.LEVEL_STATUS = 0 [RE]
DPT {f} HmIP-RF.0008DA49929523:4.ON_TIME = [W]
DPT {i} HmIP-RF.0008DA49929523:4.PROCESS = 0 [RE]
DPT {f} HmIP-RF.0008DA49929523:4.RAMP_TIME = [W]
DPT {i} HmIP-RF.0008DA49929523:4.SECTION = 0 [RE]
DPT {i} HmIP-RF.0008DA49929523:4.SECTION_STATUS = 0 [RE]
CHN 0008DA49929523:5 HmIP-BDT 0008DA49929523:5
DPT {i} HmIP-RF.0008DA49929523:5.ACTIVITY_STATE = 3 [RE]
DPT {s} HmIP-RF.0008DA49929523:5.COMBINED_PARAMETER = [W]
DPT {a} HmIP-RF.0008DA49929523:5.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.0008DA49929523:5.LEVEL_STATUS = 0 [RE]
DPT {f} HmIP-RF.0008DA49929523:5.ON_TIME = [W]
DPT {i} HmIP-RF.0008DA49929523:5.PROCESS = 0 [RE]
DPT {f} HmIP-RF.0008DA49929523:5.RAMP_TIME = [W]
DPT {i} HmIP-RF.0008DA49929523:5.SECTION = 0 [RE]
DPT {i} HmIP-RF.0008DA49929523:5.SECTION_STATUS = 0 [RE]
CHN 0008DA49929523:6 HmIP-BDT 0008DA49929523:6
DPT {i} HmIP-RF.0008DA49929523:6.ACTIVITY_STATE = 3 [RE]
DPT {s} HmIP-RF.0008DA49929523:6.COMBINED_PARAMETER = [W]
DPT {a} HmIP-RF.0008DA49929523:6.LEVEL = 0.000000 [RWE]
DPT {i} HmIP-RF.0008DA49929523:6.LEVEL_STATUS = 0 [RE]
DPT {f} HmIP-RF.0008DA49929523:6.ON_TIME = [W]
DPT {i} HmIP-RF.0008DA49929523:6.PROCESS = 0 [RE]
DPT {f} HmIP-RF.0008DA49929523:6.RAMP_TIME = [W]
DPT {i} HmIP-RF.0008DA49929523:6.SECTION = 0 [RE]
DPT {i} HmIP-RF.0008DA49929523:6.SECTION_STATUS = 0 [RE]
CHN 0008DA49929523:7 HmIP-BDT 0008DA49929523:7
DPT {s} HmIP-RF.0008DA49929523:7.COMBINED_PARAMETER = [W]
DPT {i} HmIP-RF.0008DA49929523:7.WEEK_PROGRAM_CHANNEL_LOCKS = 0 [RE]
DPT {i} HmIP-RF.0008DA49929523:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCK = [W]
DPT {i} HmIP-RF.0008DA49929523:7.WEEK_PROGRAM_TARGET_CHANNEL_LOCKS = [W]
Ich habe das HMCCUDEV des UP-Aktoes ebenfalls angelegt und kann Helligkeit/Ein/Aus steuern. Aber die Tastendrücke-Bekomme ich nicht mit.
Wäre für eine Idee sehr dankbar.
Probiere mal in der CCU ein "Pseudoprogramm" anzulegen, in dem für jedem Tastendruck vom HmIP-BDT eine Variable mit einem beliebigen Wert verändert wird. Das hilft jedenfalls z.B. bei einem HmIP-RF, dass ein Event in FHEM ausgelöst wird.
Gruß
eurofinder
Danke für die schnelle Antwort. Muss ehrlich zugeben, dass ich mich nie ernsthaft mit der Oberfläche beschäftigt habe von HomeMatic.
Passt das für eine Dummy-Zuweisung:
Wenn : Geräteauswahl Kueche_Taster_Unten : Kurzer Druck
Dann : Skript ausführen sofort mit Haken "Retriggern"
Im Skript steht:
var dummy ="";
Nein. Lege Dir eine Systemvariable an:
Einstellungen > Systemvariable > Neu (Typ Text, Bool oder Zahl)
Im "Dann" Zweig von Deinem Script:
Systemzustand <deine_neue_Variable> sofort <Wert>
Zitat von: zap am 31 März 2021, 14:03:39
Nein. Lege Dir eine Systemvariable an:
Einstellungen > Systemvariable > Neu (Typ Text, Bool oder Zahl)
Im "Dann" Zweig von Deinem Script:
Systemzustand <deine_neue_Variable> sofort <Wert>
Mit dieser Vorgehensweise kamen die PRESS-Readings in FHEM an.
Hallo,
ich habe die 19-Tastenfernbedienung "HM-RC-19-B".
Kann mir hier jmd. bzgl. der Geräte-Definition weiterhelfen?
Danke und
Gruß
Zitat von: spel am 02 Mai 2021, 12:36:34
Hallo,
ich habe die 19-Tastenfernbedienung "HM-RC-19-B".
Kann mir hier jmd. bzgl. der Geräte-Definition weiterhelfen?
Danke und
Gruß
Habe meine HB-RC-12-EP-C so umgesetzt, vielleicht hilft es, benutze allerdings die CCU.
defmod WHZ_RC HMCCUDEV SNR000002
attr WHZ_RC IODev HOMECCU
attr WHZ_RC ccureadingfilter (PRESS)
attr WHZ_RC event-on-update-reading .*
attr WHZ_RC group Fernbedienung
attr WHZ_RC icon it_remote
attr WHZ_RC room HM
attr WHZ_RC stateFormat {ReadingsVal($name,'activity','dead')}
Guten Abend zusammen,
ich habe eine HmIP-PCBS-BAT von der CCU2 eingebunden. Nun würde ich gerne die Volt anzeigen lassen. Den Datapoint 0.OPERATING_VOLTAGE würde das abdecken.
Mit deine get HM_Weihnachten_FensterDeko_Wz datapoint 0.OPERATING_VOLTAGE wird auch der Wert angezeigt. Nun hätte ich diese gerne in einem Reading. Ich habe das Forum und Wiki durchsucht und habe keine Lösung dazu gefunden.
Vielen Dank für euer Hilfe
Hier die Definitionen:
DEV Weinhanchten_FensterDeko_Wz 00105BE98B23F0 interface=HmIP-RF type=HmIP-PCBS-BAT
CHN 00105BE98B23F0:0 Weinhanchten_FensterDeko_Wz:0
0.ACTUAL_TEMPERATURE = 0.000000 {f} [RE]
0.CONFIG_PENDING = false {b} [RE]
0.DUTY_CYCLE = false {b} [RE]
0.ERROR_CODE = 0 {n} [RE]
0.ERROR_OVERHEAT = false {b} [RE]
0.INSTALL_TEST = true {b} [RW]
0.LOW_BAT = false {b} [RE]
0.OPERATING_VOLTAGE = 2.700000 {f} [RE]
0.OPERATING_VOLTAGE_STATUS = 0 {i} [RE]
0.RSSI_DEVICE = 213 {n} [RE]
0.RSSI_PEER = 206 {n} [RE]
0.UNREACH = false {b} [RE]
0.UPDATE_PENDING = false {b} [RE]
........
defmod HM_Weihnachten_FensterDeko_Wz HMCCUDEV 00105BE98B23F0 sd=2.STATE cd=3.STATE
attr HM_Weihnachten_FensterDeko_Wz DbLogExclude .*
attr HM_Weihnachten_FensterDeko_Wz DbLogInclude 3.STATE
attr HM_Weihnachten_FensterDeko_Wz ccureadingfilter 1,2,3..*
attr HM_Weihnachten_FensterDeko_Wz group Weihnachten
attr HM_Weihnachten_FensterDeko_Wz room Steuerung,Homematic_Neu
Zitat von: mig2 am 22 Dezember 2021, 19:35:29
Nun würde ich gerne die Volt anzeigen lassen. Den Datapoint 0.OPERATING_VOLTAGE würde das abdecken.
Mit deine get HM_Weihnachten_FensterDeko_Wz datapoint 0.OPERATING_VOLTAGE wird auch der Wert angezeigt. Nun hätte ich diese gerne in einem Reading. Ich habe das Forum und Wiki durchsucht und habe keine Lösung dazu gefunden.
Bei meinen Fensterkontakten habe ich das Attribut ccuflags auf showDeviceReadings gestellt.
Danach hatte ich die OPERATING_VOLTAGE in den Readings.
ZitatBei meinen Fensterkontakten habe ich das Attribut ccuflags auf showDeviceReadings gestellt.
Danach hatte ich die OPERATING_VOLTAGE in den Readings.
Vielen Dank, das ist die Lösung
Mit einem der letzten Updates habe ich ein Reading 'voltage' eingeführt. ccuFlags = showDeviceReadings sollte damit nicht mehr notwendig sein.
Hallo zusammen,
ich wünsche allen ein Frohes neues Jahr!
Ich habe über die HMCCU V5 meine HmIP Wired Geräte in FHEM eingebunden. Als Zentrale für die HmIP Wired Geräte kommt bei mir RaspberryMatic zum Einsatz.
Zusätzlich habe ich noch ein paar ältere HM Geräte, welche schon vor dem Einbau der HmIP Geräte in Nutzung direkt im FHEM über ein Cul waren.
Nun möchte ich gern über einen Taster welcher an einem HmIPW-DRI32 angeschlossen ist, einen HM-LC-SW1PBU-FM schalten. Das klappt in sofern, dass der Unterputzaktor zwar geschaltet wird, aber der Befehl (set Badezimmer.Spiegel toggle) immer doppelt gesendet wird.
Zusätzlich habe ich bemerkt, dass das DoIf auf jeden Taster reagiert, der am DRI32 angeschlossen ist.
In RaspberryMatic habe ich ein Programm erstellt, welches alle 32 Kanäle abfragt und bei kurzen Tastendruck eine Systemvariable schreibt.
Des Weiteren habe ich einen HmIP-WRC6 eingebunden, da werden auch alle 6 Kanäle abgefragt.
Hier gibt es die Besonderheit, dass ein DoIf zwar eine Steckdose schaltet, aber das eben auch passiert wenn der Taster nicht gedrückt wird, da der Taster alle 1,5 Stunden einen Status sendet (pressed).
Habt ihr einen Tipp für mich, damit ich das alles berichtigen kann?
Wenn ich irgendwelche Informationen liefern soll, dann gern nachfragen.
Viele Grüße,
Marco
Hallo,
ich habe gerade meine ersten BidCos-Geräte an einer debmatic-CCU von CUL_HM umgemeldet an HMCCU.
Beim ersten Heizkörperthermostaten habe ich nur eine Begriffsstutzigkeit: Der HM-CC-RT-DN ist eingebunden,
aber die Attribute sind nicht "nach meinem Geschmack" ;-)
Grund: Slider sind nicht so angenehm auf dem Smartphone einzustellen, und die Auswahlliste würde ggü. Buttons und Statusanzeige Platz sparen, da sie Status und Bedienung gleichzeitig ist.
Für den Modus (auto/manuell) und die Temperatur hätte ich gerne eine Auswahlbox, wie im Bild gezeigt.
Da setList usw. nicht existieren, stehe ich nach Stunden noch auf dem Schlauch.
Hat jemand einen Tipp?
So sollte es bitte aussehen (ist der Zustand eines alten Heizkörperthermostaten):
Gruß,
Friedhelm
Also mit
set xxxx widgetOverride desired-temp:17,18,19,20,21
kriege ich statt dem Slider ein Pulldown hin
Zitat von: Adimarantis am 16 Januar 2022, 19:23:16
Also mit
set xxxx widgetOverride desired-temp:17,18,19,20,21
kriege ich statt dem Slider ein Pulldown hin
set => attr
Danke Euch beiden!
Das funktioniert, ich muss aber aus irgendeinem Grund statt desired-temp control nehmen, und sieht dann wie im Screenshot aus, prima!
widgetOverride control:19,20,21,22
Wie muss das Widget Override zusätzlich aussehen, wenn ich die Steuerung Auto/Manu/Boost/on/off ebenfalls als Dropdown haben will?
attr HT_Gaeste_WC cmdIcon cmdIcon auto:sani_heating_automatic manu:sani_heating_manual boost:sani_heating_boost on:general_an off:general_aus
attr HT_Gaeste_WC controldatapoint SET_TEMPERATURE
attr HT_Gaeste_WC event-on-change-reading .*
attr HT_Gaeste_WC event-on-update-reading VALVE_STATE,desired-temp,battery
attr HT_Gaeste_WC eventMap /datapoint 2.MANU_MODE 20.0:Manu/datapoint 2.AUTO_MODE 1:Auto/
attr HT_Gaeste_WC group Heizkörperthermostat
attr HT_Gaeste_WC room Heizung
attr HT_Gaeste_WC stateFormat T: ACTUAL_TEMPERATURE° SET_TEMPERATURE° V: VALVE_STATE % CONTROL_MODE
attr HT_Gaeste_WC statedatapoint ACTUAL_TEMPERATURE
attr HT_Gaeste_WC stripnumber 1
attr HT_Gaeste_WC substexcl control
attr HT_Gaeste_WC substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
attr HT_Gaeste_WC webCmd control:Auto:Manu:Boost:on:off
attr HT_Gaeste_WC widgetOverride control:19,20,21,22
Zitat von: FFHEM am 17 Januar 2022, 10:32:52
Das funktioniert, ich muss aber aus irgendeinem Grund statt desired-temp control nehmen, und sieht dann wie im Screenshot aus, prima!
Ich denke, wenn du substexcl änderst funktioniert widgetOverride auch mit desired-temp.
attr HT_Gaeste_WC substexcl desired-temp
Gruß LuGu
@LuGu: danke, aber das funktioniert nicht, es erscheint dann stattdessen der Text "control" in der Statuszeile.
Zitat von: FFHEM am 17 Januar 2022, 17:41:34
@LuGu: danke, aber das funktioniert nicht, es erscheint dann stattdessen der Text "control" in der Statuszeile.
Na ja, widgetOverride musst du dann natürlich auch wieder umstellen auf desired-temp umstellen.
attr HT_Gaeste_WC widgetOverride desired-temp:19,20,21,22
Zitat von: LuGu am 17 Januar 2022, 18:41:58
Na ja, widgetOverride musst du dann natürlich auch wieder umstellen auf desired-temp umstellen.
attr HT_Gaeste_WC widgetOverride desired-temp:19,20,21,22
Entschuldige, übersehen,
danke vielmals. Wie man sieht, bin ich nur am Rudern...
Jetzt habe ich aber noch eine Frage, bitte:
Kann ich den CONTROL_MODE auch noch als zusätzlichen Dropdown darstellen, also wie hier im Bild?
Vielen Dank für die Mühe!
Gruß,
Friedhelm