Neues Modul HMCCU für Homematic CCU

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

Vorheriges Thema - Nächstes Thema

Init

Hallo zusammen,

ich versuche gerade die CCU2 in FHEM einzurichten.

Klappt bislang auch ganz gut, aber folgendes Problem habe ich noch:

Hier mein define:
define WDS_NW HMCCUDEV LEQ0160229
attr WDS_NW IODev d_ccu
attr WDS_NW ccureadingname 0.(LOWBAT|LOW_BAT):battery;1.TEMPERATURE:temperature
attr WDS_NW substitute battery!(1|true):low,(0|false):ok
attr WDS_NW room HMCCU


Eigentlich habe ich erwartet, dass ich im reading "battery" eine ok statt false stehen habe und das attr "ccureadingname" enthält nur "0.(LOWBAT|LOW_BAT):battery"

Hat jemand eine Idee, was ich hier falsch mache?

Zusätzlich wäre für mich interessant, wie ich den Wert temperature auf eine Nachkommastelle kürzen kann. Statt 32.300000 benötige ich 32.3 im Reading "temperature"

VG
Marc

zap

#1441
So geht's:


attr WDS_NW substitute LOWBAT,LOW_BAT!(1|true):low,(0|false):ok
attr WDS_NW stripnumber 1


Hintergrund: Die Angaben bei Attributen wie substitute, ccureadingfilter, ccuscaleval usw. beziehen sich immer auf Datenpunkte, nicht auf Readingsnames.

BTW: War eigentlich der Meinung, dass battery sowie die Ersetzung von LOWBAT und auch UNREACH Default ist.

Mit stripnumber lassen sich nummerische Werte formatieren. stripnumber = 1 schneidet nach der ersten Nachkommastelle ab, stripnumber -1 rundet auf eine Nachkommastelle.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Init

Super das funktioniert!

Jetzt hab ich noch das Problem, dass von
attr WDS_NW ccureadingname 0.(LOWBAT|LOW_BAT):battery;1.TEMPERATURE:temperature

nur folgendes in FHEM ankommt:
ccureadingname 0.(LOWBAT|LOW_BAT):battery

Hast du da auch eine Idee, was ich hier falsch mache?

ZitatBTW: War eigentlich der Meinung, dass battery sowie die Ersetzung von LOWBAT und auch UNREACH Default ist.
Hab das Device durch "get <io-dev> devicelist create <dev-expr> [Options ...] [defattr] [<attr>=<value [...]]" anlegen lassen.

Bei "get  WDS_NW defaults" habe ich die Meldung "No default attributes defined" erhalten

zap

Ich meinte, dass battery ein globales und internes Default ist. Das sollte man komplett weglassen können und das battery Reading müsste trotzdem kommen.

Das Ignorieren von der 2. Ersetzung schaue ich mir mal an. Fixen wird aber schwierig, da ich immer noch keinen Ersatz für mein kaputtes Macbook habe.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Init

#1444
Wenn ich über die Oberfläche das attr ccureadingname setzte, dann bleiben beide erhalten. Es funktioniert nur über die fhem.cfg nicht.

Bezüglich battery - Wie kann ich checken, ob das battery reading global kommt?
Ein notify notify .*:[Bb]attery.* wird jedenfalls ohne "ccureadingname" nicht ausgelöst

zap

#1445
Die Readings kannst du mit dem Befehl "get update" holen. Damit werden alle Datenpunkte abgefragt und je nach Attribut ccureadingfilter entsprechende Readings erzeugt.

Zum anderen Problem: editierst du die fhem.cfg manuell? Ich glaube, beim Semikolon gibt es da eine Besonderheit. Muss möglicherweise ein \ davor oder das Semikolon muss gedoppelt werden. Lässt sich am einfachsten bei Eingabe über das Webfrontend und anschließender Speicherung raus bekommen.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Init

ja, ich editiere die cfg in eclipse.

Lösung ist:
0.(LOWBAT|LOW_BAT):battery;;1.TEMPERATURE:temperature

Demnach wir ein Semikolon in der cfg durch Verdopplung escaped.

Eine Frage hab ich aber noch - In State/hmstate steht "Initialized" statt der Temparatur.
Bekomme ich das irgendwie geändert?

zap

Zitat von: Init am 18 Mai 2017, 13:58:24

Eine Frage hab ich aber noch - In State/hmstate steht "Initialized" statt der Temparatur.
Bekomme ich das irgendwie geändert?

Du musst zumindest noch statedatapoint setzen, z.B. auf 1.TEMPERATURE

hmstate hat dann per Default den gleichen Wert wie state oder ggf den von LOWBAT oder UNREACH, sofern eines von beiden true ist.

Beeinflussen kann man hmstate durch das Attribut hmstatevals. Da würde ich dann doch auf die commandref verweisen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

mrfloppy

Ich habe mehrere Schalter die ich mit on-for-timer schalte.

In der CCU2 direkt sieht man ja dann so ein Zahnradsymbol wenn der on-for-timer aktiv ist.
Gibt es eine möglichkeit den Timer in FHEM auszulesen?

LG

RaspiMatic, RFXtrx433 E USB, Div. Thermostate, CUL433, Fhemduino, Signalduino, Temp/luftfeuchesensoren,Fensterkontakte,Intertechno Schalter,....... HM-IP

zap

Die Schalter bieten für das Auslesen einer eingestellten On-Time leider keinen Datenpunkt an. Der Datenpunkt "ON_TIME" ist nur beschreibbar, also zum Setzen der On-Time vorgesehen. Ein Lesen ist nicht möglich.

HMCCUDEV und HMCCUCHN müssten sich intern die On-Time merken und das entsprechend visualisieren. So wird es vermutlich auch die CCU machen.

Eigentlich eine gute Idee, mal sehen ...

Weiß jemand, wie sich das bei CUL_HM verhält? Wird ein aktives on-for-timer dort irgendwie visualisiert?
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Init

Zitat von: zap am 19 Mai 2017, 08:28:43
Du musst zumindest noch statedatapoint setzen, z.B. auf 1.TEMPERATURE
Super, hat funktioniert!

Zitat von: zap am 19 Mai 2017, 08:28:43
Da würde ich dann doch auf die commandref verweisen.
Muss ich dir recht geben. Hab die commandref nicht auf dem Schirm gehabt und hab mich durch das Wiki gearbeitet - Sorry

Zitat
WIKI HMCCU

Inbetriebnahme

  • Nach dem Neustart der CCU2 muss auch der RPC-Server neu gestartet werden, da die CCU2 bei einem Neustart die registrierten RPC-Server "vergisst".
Hab gestern Abend einen Test gemacht und einen Neustart der CCU gemacht. Danach wurden die Readings nicht mehr aktiv verändert. Nur ein update führte zur Veränderung der Readings.
Gibt es nicht eine Methode/Callback oder ähnliches im RPC Server, welche auf ein disconnect reagiert?

redstar2003

Zitat von: zap am 15 Mai 2017, 18:59:42
Die Probleme mit Notify kann ich verstehen. Aber wenn Notify schlimm ist, schau Dir mal DOIF an. Davon lass ich auch die Finger weg. Dagegen ist Notify simpel.

Aber steck da mal nicht zu viel Arbeit rein. Habe gerade festgestellt, dass man in der CCU zwar ein virtuelles Jalousien Device mit CUxD anlegen und auch steuern kann (also hoch/runter usw.), aber leider aktualisiert CUxD die Datenpunkte nicht. Vielleicht habe ich es auch nicht richtig konfiguriert. Blöderweise ist das bei CUxD nicht dokumentiert.

Jedenfalls habe ich es nicht geschafft, dass die CCU Änderungen für das virtuelle Device an FHEM bzw. HMCU weiter gibt.

Hallo Zap,

ich bin nun schon mal ein gutes Stück weitergekommen und wäre gut, wenn du mir mit eventuell mit Notify helfen kann. :) Ich habe nun anscheinend in CUxD das richtige Device gewählt und z.B. das Level wird nun richtig an FHEM übergeben (siehe Screenshot 1 + 2). Wie kriege ich nun Notifiy hingebogen, das er das vom HMCCUDEV, die Werte an das FHEM Device übergibt (Screenshot 3) ? Schön wäre es, wenn ich eine Position angeben kann und Hoch- bzw. Runterfahren. Hast du da eine Idee ?

redstar2003

Hat sich schon wieder erledigt, ich glaube ich kriege das über den ioBroker hin. Danke aber trotzdem. :)

zap

Zitat von: Init am 19 Mai 2017, 12:03:27
Hab gestern Abend einen Test gemacht und einen Neustart der CCU gemacht. Danach wurden die Readings nicht mehr aktiv verändert. Nur ein update führte zur Veränderung der Readings.
Gibt es nicht eine Methode/Callback oder ähnliches im RPC Server, welche auf ein disconnect reagiert?

Die CCU verbindet sich nur mit HMCCU, wenn Daten anstehen. Daher kann HMCCU nicht auf einen Verbindungsabbau reagieren. Ich werde (sobald ich wieder arbeitsfähig bin) einen Mechanismus einbauen, der ein FHEM Event triggert, wenn für eine bestimmte Zeit kein Event von der CCU kam. Da kann man dann drauf reagieren.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

zap

Zitat von: redstar2003 am 19 Mai 2017, 18:18:53
Ich habe nun anscheinend in CUxD das richtige Device gewählt und z.B. das Level wird nun richtig an FHEM übergeben (siehe Screenshot 1 + 2).

Auf den Devicetyp in CUxD wäre ich nie gekommen. Die Logik von dem Addon ist schon manchmal etwas seltsam. Werde das mal für meine Somfy Rollläden in der Küche nachbauen. Werde dann hier ein kurzes Howto inkl. der notwendigen Notifies bereitstellen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB