HMCCU Beispiel Geräte-Definitionen

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

Vorheriges Thema - Nächstes Thema

Grimmschak

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

zap

#286
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?




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

Grimmschak

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

zap

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.
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

Grimmschak

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

zap

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.
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

Grimmschak

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.

zap

Kann man die Variable auch unter Einstellungen - Systemvariablen nicht sehen? Verknüpfte Variablen sind nur dort sichtbar, nicht in der Werte Übersicht.
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

Grimmschak

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

zap

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.
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

Grimmschak

Klingt gut. Du gibst Bescheid, wenn via update verfügbar ?

Gesendet von meinem SM-G930F mit Tapatalk


zap

Mit der neuen Version sollte zumindest die Aktualisierung dieser speziellen Datenpunkte mit dem Befehl "get update" funktionieren.
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

Grimmschak

Bin gespannt wie Flitzebogen... Leider noch nicht im Repository als Update verfügbar  :-X

Grimmschak


Garbsen

#299
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
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2