Neues Modul HMCCU für Homematic CCU

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

Vorheriges Thema - Nächstes Thema

chris1284

Zitat von: zap am 29 Dezember 2016, 13:52:25
Das ist eingebaut, es sei denn, Du setzt für ein HMCCUCHN Device das Attribut ccuflags auf nochn0.

sollte das bedeuten wenn das attribut nicht gesetzt ist sollte egal welchen cahnnel ich per hmccuchn anlege zusätzlich noch die 0.* readings haben?

zap

#1051
Ja.

... aber:

in der aktuellen Version nur, wenn sie die CCU schickt. Bei einem "get update" werden sie nicht aktualisiert. Das wird erst mit 3.7 so sein.

Man kann es testen indem man z.B. die Batterien bei einem Gerät entfernt. Mit geeignetem ccureadingfilter sollte dann ein 0.UNREACH kommen.

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

Loredo

#1052
Zitat von: zap am 29 Dezember 2016, 13:52:25
m.E. sollte das ohne Kanalnummer funktionieren. Du musst berücksichtigen, dass der zu ersetzende Readingname ein regulärer Ausdruck ist und lediglich der Teil des Readingnames ersetzt wird, der dem regulären Ausdruck entspricht


Passt, danke!


Zitat von: zap am 29 Dezember 2016, 13:52:25
Das ist eingebaut, es sei denn, Du setzt für ein HMCCUCHN Device das Attribut ccuflags auf nochn0.


Hm, also bei einem "get update" werden diese Readings nicht erzeugt.




defmod LR_SunBlind HMCCUCHN HEQ0402430:1
attr LR_SunBlind DbLogExclude .*
attr LR_SunBlind IODev CCU2
attr LR_SunBlind alias Markise
attr LR_SunBlind ccureadingformat datapoint
attr LR_SunBlind ccureadingname ^.*ACTUAL_TEMPERATURE$:measured-temp,^.*BRIGHTNESS$:brightness,^.*CONTROL_MODE$:controlMode,^.*DIRECTION$:direction,^.*HUMIDITY$:humidity,^.*INHIBIT$:lock,^.*LEVEL$:level,^.*LOW[_]?BAT$:battery,^.*MOTION$:motion,^.*SET_TEMPERATURE$:desired-temp,^.*TEMPERATURE$:temperature,^.*UNREACH$:Activity,^.*WORKING$:working
attr LR_SunBlind ccuscaleval LEVEL:0.01
attr LR_SunBlind cmdIcon close:control_arrow_leftward stop:time_manual_mode open:control_arrow_rightward
attr LR_SunBlind devStateIcon 100|on:fts_sunblind_100@red:level 0|off:fts_sunblind_0@green:level%2055 1[0-9].*:fts_sunblind_10@orange:level 2[0-9].*:fts_sunblind_20@orange:level 3[0-9].*:fts_sunblind_30@orange:level 4[0-9].*:fts_sunblind_40@orange:level 5[0-9].*:fts_sunblind_50@orange:level 6[0-9].*:fts_sunblind_60@red:level 7[0-9].*:fts_sunblind_70@red:level 8[0-9].*:fts_sunblind_80@red:level 9[0-9].*:fts_sunblind_90@red:level [0-9].*:fts_sunblind_0@orange:level out|up|opening:control_arrow_rightward@orange:stop in|down|closing:control_arrow_leftward@orange:stop OK:general_ok@green:stop unreachable:light_question Error:light_exclamation
attr LR_SunBlind event-on-change-reading .*
attr LR_SunBlind eventMap /datapoint STOP 1:stop/datapoint LEVEL:level/datapoint LEVEL:pct/datapoint LEVEL 55:on/datapoint LEVEL 55:out/datapoint LEVEL 55:open/datapoint LEVEL 55:down/datapoint LEVEL 0:off/datapoint LEVEL 0:in/datapoint LEVEL 0:close/datapoint LEVEL 0:up/
attr LR_SunBlind genericDeviceType blind
attr LR_SunBlind group Fenster & Türen
attr LR_SunBlind icon awning
attr LR_SunBlind room HMCCU,Homekit,Umwelt,Wohnzimmer
attr LR_SunBlind siriName Sunblind
attr LR_SunBlind sortby 1
attr LR_SunBlind stateFormat stateHM
attr LR_SunBlind substitute DIRECTION!(none|0):none,(up|1):up,(down|2):down,.*:undefined;;INHIBIT!(false|0):unlocked,(true|1):locked;;LOWBAT!(false|0):ok,(true|1):low;;LOW_BAT!(false|0):ok,(true|1):low;;MOTION!(false|0):noMotion,(true|1):motion;;UNREACH!(false|0):alive,(true|1):dead
attr LR_SunBlind userReadings stateHM:.* { my $m = ReadingsVal($name, 'direction', 'error');; my $l = ReadingsVal($name, 'level', 'error');; my $r = ReadingsVal($name, 'Activity', 'error');; if ($r eq 'dead') { return 'unreachable' } elsif ($m eq 'none') { if ($l eq '0') { return 'off' } elsif ($l eq '100') { return 'on' } else { return $l } } else { return $m } }
attr LR_SunBlind webCmd close:stop:open
attr LR_SunBlind widgetOverride level:slider,0,1,100


setstate LR_SunBlind 10000
setstate LR_SunBlind 2016-12-29 14:33:22 direction none
setstate LR_SunBlind 2016-12-29 14:33:22 level 10000
setstate LR_SunBlind 2016-12-29 14:25:50 lock unlocked
setstate LR_SunBlind 2016-12-29 14:25:51 pct 0
setstate LR_SunBlind 2016-12-29 14:33:22 stateHM 10000
setstate LR_SunBlind 2016-12-29 14:33:22 working 0
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

zap

#1053
s. mein Posting eins weiter oben. Das ist u.a. auch der Grund, weshalb die Readings bei HMCCUCHN Devices den Kanal vorangestellt haben. Bei Fensterkontakten (z.B.) Datenpunkt LOWBAT sowohl in 0 als auch in 1.

Zu Deiner Markise: bei LEVEL würde ich Dir empfehlen, bei ccuscaleval immer folgende Syntax zu verwenden:

LEVEL:0:1:0:100

Grund: bei manchen Geräten liefert LEVEL Werte von 0-100, teilweise abhängig von der Geräte-Revision bzw. der Firmware. Bei o.g. Syntax prüft ccuscaleval vor der Skalierung, in welchem Bereich der Wert liegt. Bei Deiner Variante wird gnandelos skaliert.

Außerdem sollte der Befehl "set pct" automatisch verfügbar sein, wenn ein LEVEL vorhanden ist. Spart den eventMap Eintrag.

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

Loredo

Ok, merci!


Kannst du noch sagen, weshalb ich in obigem Beispiel plötzlich eine falsche Berechnung von level habe?
Eigentlich ist der Wert aktuell 0
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

zap

Zitat von: Loredo am 29 Dezember 2016, 14:38:01
Ok, merci!


Kannst du noch sagen, weshalb ich in obigem Beispiel plötzlich eine falsche Berechnung von level habe?
Eigentlich ist der Wert aktuell 0

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

Loredo

Eigentlich mit LEVEL:0.01.
Ich denke aber ich weiß woran es liegt: Ich habe für den Test ein vorhandenes HMCCUCHN Gerät dupliziert. Diese scheinen sich gegenseitig zu stören und nicht unabhängig voneinander zu sein. Das sieht man daran, dass ich bei dem einen Gerät LEVEL:0:1:0:100 ausprobiert habe und bei dem anderen LEVEL:0.01 gesetzt ist. Die beiden Geräte scheinen sich die Attribute irgendwie zu teilen bzw. sie scheinen sich gar noch irgendwie zu addieren, weil ich hier teils um den Faktor 100 zu hohe Werte bekomme (also 8950 statt 89.50).
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

zap

Interessanter Effekt, der so nicht gewollt ist. Versuche ich mal nachzuvollziehen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

zap

Zitat von: Loredo am 29 Dezember 2016, 14:50:29
Eigentlich mit LEVEL:0.01.
Ich denke aber ich weiß woran es liegt: Ich habe für den Test ein vorhandenes HMCCUCHN Gerät dupliziert. Diese scheinen sich gegenseitig zu stören und nicht unabhängig voneinander zu sein. Das sieht man daran, dass ich bei dem einen Gerät LEVEL:0:1:0:100 ausprobiert habe und bei dem anderen LEVEL:0.01 gesetzt ist. Die beiden Geräte scheinen sich die Attribute irgendwie zu teilen bzw. sie scheinen sich gar noch irgendwie zu addieren, weil ich hier teils um den Faktor 100 zu hohe Werte bekomme (also 8950 statt 89.50).

Ist ein Bug. Tritt nur auf, wenn es >1 FHEM-Devices mit gleicher Adresse gibt.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Yil

Hat jemand schon mal Sirenen (HM-Sec-Sir-WM) mit diesem Modul angebunden und gesteuert?
HM CCU3 und HCU mit ca. 50 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth,
HUE, UniFi

chris1284

#1060
heute hat ein set upate eine hmccudev fhem gekilled. letzte meldung im log war dann
Zitat
2017.01.03 18:20:15 0: HMCCU: Received IN event. RPC server CB9292 initialized.
2017.01.03 18:20:15 3: HMCCU: Device LEQ0636100:6 has no readable datapoints
Unmatched ) in regex; marked by <-- HERE in m/0|false) <-- HERE / at ./FHEM/88_HMCCU.pm line 1751.

... und beim start danach direkt wieder

2017.01.03 18:42:38 0: HMCCU: Received IN event. RPC server CB9292 initialized.
Unmatched ) in regex; marked by <-- HERE in m/0|false) <-- HERE / at ./FHEM/88_HMCCU.pm line 1751.


als letztes hatte ich einem device einen (wohl unverträglichen)  substitute gegeben! dass sollte man unbedingt abfangen im modul!!!!


chris1284

#1061
zusatz der fehler liegt offenbar nicht mit dem substitute zusammen. auch nach cfg änderung startet die ka... immer noch nicht
Zitat
2017.01.03 18:53:01 0: HMCCU: Received IN event. RPC server CB9292 initialized.
2017.01.03 18:53:01 3: HMCCU: Device LEQ0636100:5 has no readable datapoints
2017.01.03 18:53:01 3: HMCCU: Device MEQ0600596:1 has no readable datapoints
Unmatched ) in regex; marked by <-- HERE in m/0|false) <-- HERE / at ./FHEM/88_HMCCU.pm line 1751.

an keinen der beiden geräten würde was geändert !

EDIT: - ein neustart der ccu + neustart fhemserver und es lief kurz... bis ich ein get update bei folgendem device gemacht habe:


define az_hz HMCCUDEV az_hz
attr az_hz IODev CCU01
attr az_hz ccureadingformat datapoint
attr az_hz controldatapoint 4.SET_TEMPERATURE
attr az_hz eventMap /datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost
attr az_hz group Heizung
attr az_hz room HM
attr az_hz stateFormat T: 4.ACTUAL_TEMPERATURE dT: 4.SET_TEMPERATURE V: 4.VALVE_STATE B: 0.LOWBAT
attr az_hz stripnumber 1
attr az_hz substitute LOWBAT!(0|false):ok,(1|true):low;;UNREACH!0|false):ok,(1|true):unreach;;
attr az_hz webCmd control:Auto:Boost
attr az_hz widgetOverride control:slider,5,1,25

umgestellt wurde
ccureadingformat auf datapoint
eventMap /datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost
az_hz stateFormat T: 4.ACTUAL_TEMPERATURE dT: 4.SET_TEMPERATURE V: 4.VALVE_STATE B: 0.LOWBAT
substitute LOWBAT!(0|false):ok,(1|true):low;UNREACH!0|false):ok,(1|true):unreach;



EDIT2:
habe alle änderungen aus der cfg genommen, server reboot, device wieder so konfiguriert bis auf "UNREACH!0|false):ok,(1|true):unreach;" kann es sein das er mit der substitution nicht klar kam weil UNREACH und unreach???

Mundus

Hallo,

zunächst einmal möchte ich zap für das tolle Modul danken.
Trotz lesen der 71 Seiten und des WIKIs brauche ich aber noch etwas Unterstützung:

Ich habe ein Homematic Thermostat HM-CC-RT-DN als HMCCUDEV eingebunden, hier tauchen die beiden nachfolgenden Probleme bei mir auf:

1. ccureadingname 4.BATTERY_STATE:Batterygreift bei mir nicht. Das Reading 4.BATTERY_STATE wird nicht ersetzt. Leider weiß ich nicht, was ich falsch mache.

2. ccureadingfilter (^UNREACH|LOWBAT|TEMPERATURE|VALVE_STATE|CONTROL)trotz dieses defaults Attributs werden Readings wie z.B. R-ENDTIME_FRIDAY ausgegeben. Auch hier die gleiche Frage, wieso wird dies mit ausgegeben bzw. was mache ich falsch?

Und zum Schluss (evtl. Offtopic). Bei meiner CCU2 blinkt die Internet-LED nach jedem Neustart. Der Fehler wird u.a. hier http://homematic-forum.de/forum/viewtopic.php?f=31&t=31917 beschrieben und gelöst. Leider kann ich die Datei /etc/network/if-up.d/eQ3StartNetwork nicht editieren. Diese Datei ist read-only >:(. Daher löse ich das Problem indem ich
touch /var/status/hasInternet auf der CCU2 ausführe. Und nun meine Fragen. Kann ich den vorgenannten Befehl auch über das HMCCU-Modul absetzen. Oder wisst ihr, wie ich die Datei eQ3StartNetwork so editieren kann, dass ich die überprüfte IP-Adresse ersetzen kann (hier gegen die IP-Adresse meines Routers).

Gruß

Mundus

chris1284

warum stört dich die led? sobald die ccu2 dann nach start erkennt das sie internet zugang hat geht sie aus. das problem ist aber ehr in deinem netzwerk zu suchen als an der ccu denke ich

zap

Zitat von: chris1284 am 03 Januar 2017, 18:57:38


attr az_hz substitute LOWBAT!(0|false):ok,(1|true):low;;UNREACH!0|false):ok,(1|true):unreach;;


Nach UNREACH! fehlt eine "(".

Mal sehen, ob ich per eval eine Prüfung des Regexp einbauen kann, bevor sie ausgeführt wird.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)