Hallo Zusammen,
ich habe meine neue Wetterstation von Homematic HmIP-SWO-PR über die Raspimatic und die HMCCU in Betrieb.
Jetzt versuche die Datenpunkte:
svHmIPSunshineCounterToday_1497 ; svHmIPSunshineCounterYesterday_1497; svHmIPRainCounterToday_1497; svHmIPRainCounterYesterday_1497,
die das Device mit deviceinfo ausgibt mit ccureadingfilter anzuzeigen.
get Deviceinfo
DPT {f} HmIP-RF.00185709ACB186:1.WIND_DIR_RANGE = [RE]
DPT {f} HmIP-RF.00185709ACB186:1.WIND_SPEED = 13.300000 [RE]
DPT {b} HmIP-RF.00185709ACB186:1.WIND_THRESHOLD_OVERRUN = false [RE]
DPT {f} svHmIPSunshineCounterToday_1497 = 374.000000 [RWE]
DPT {f} svHmIPSunshineCounterYesterday_1497 = 365.000000 [RWE]
DPT {f} svHmIPRainCounterToday_1497 = 1.800000 [RWE]
DPT {f} svHmIPRainCounterYesterday_1497 = 0.300000 [RWE]
leider ohne Erfolgt, ich weiß nicht wie.
Alle anderen Datenpunkte gehen.
Hat jemand eine Idee.
Besten Dank und Grüße Stefan
Sind das wirklich Datenpunkte oder direkt verknüpfte Systemvariablen? Siehst du die fehlenden Infos unter der Übersicht der Systemvariablen in der CCU?
Hallo,
hier mal die screenshots im Anhang wie ich an die Info komme.
Das Homematic device ist in Fhem angelegt und ich mache ein get deviceinfo.
Viele Grüße
Stefan
Hallo, habe das selbe Problem. Gerade der RainCounter ist auch noch wichtig um die aktuelle Regenmenge auszulesen.
Ich komme auch nicht dran. Als Systemvariable oder Skript sehe ich das eher nicht. Vermutlich muss da noch einiges an der Firmenware gearbeitet werden.
Hast Du eine Lösung gefunden?
Gruß,
Shrek
Also in der CCU unter "Status und Bedienung" > "Systemvariable" tauchen diese Werte nicht auf?
Als Workaround fällt mir im Moment nur ein regelmäßig getriggertes "get update" oder "get datapoint" ein.
Hallo zusammen,
Ich habe leider das gleiche Problem, das ich diese Werte bräuchte. Leider komme ich auch nicht dran.
Zap hat ja gefragt, ob die Werte unter "Status und Bedienung" > "Systemvariable" in der CCU auftauchen. Das tun sie bei mir nicht, ich seh sie in der CCU aber beim Device.
Auch erhalte ich sie über "get Deviceinfo" im FHEM wie Stefan_Ne schon geschrieben hat.
Leider bekomme ich es aber nicht hin, sie irgendwie in ein Reading rein zu bekommen.
"get update" oder "get datapoint" klappt irgendwie nicht, oder ich bin gerade zu blöd ::)
Vielleicht seid ihr schon einen Schritt weiter? Würde mich freuen, wenn jemand eine Idee hat.
Ein get update oder get datapoint müsste funktionieren. ccureadingfilter muss den Namen beinhalten. Automatische Aktualisierung per RPC Server wird von der CCU für diese Werte nicht unterstützt.
Bei mir sieht ein "get Wettersensor deviceinfo" folgendermaßen aus:
CHN 00181709ADB282:0 Wettersensor:0
DPT {b} HmIP-RF.00181709ADB282:0.CONFIG_PENDING = false [RE]
DPT {b} HmIP-RF.00181709ADB282:0.DUTY_CYCLE = false [RE]
DPT {n} HmIP-RF.00181709ADB282:0.ERROR_CODE = 0 [RE]
DPT {b} HmIP-RF.00181709ADB282:0.ERROR_WIND_COMMUNICATION = false [RE]
DPT {b} HmIP-RF.00181709ADB282:0.ERROR_WIND_NORTH = false [RE]
DPT {b} HmIP-RF.00181709ADB282:0.LOW_BAT = false [RE]
DPT {f} HmIP-RF.00181709ADB282:0.OPERATING_VOLTAGE = 0.000000 [RE]
DPT {n} HmIP-RF.00181709ADB282:0.RSSI_DEVICE = 179 [RE]
DPT {n} HmIP-RF.00181709ADB282:0.RSSI_PEER = 0 [RE]
DPT {b} HmIP-RF.00181709ADB282:0.TEMPERATURE_OUT_OF_RANGE = false [RE]
DPT {b} HmIP-RF.00181709ADB282:0.UNREACH = false [RE]
DPT {b} HmIP-RF.00181709ADB282:0.UPDATE_PENDING = false [RE]
DPT {b} HmIP-RF.00181709ADB282:0.INSTALL_TEST = true [RW]
DPT {i} HmIP-RF.00181709ADB282:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
CHN 00181709ADB282:1 HmIP-SWO-PL 00181709ADB282:1
DPT {f} HmIP-RF.00181709ADB282:1.ACTUAL_TEMPERATURE = 24.000000 [RE]
DPT {i} HmIP-RF.00181709ADB282:1.HUMIDITY = 53 [RE]
DPT {f} HmIP-RF.00181709ADB282:1.ILLUMINATION = 0.000000 [RE]
DPT {b} HmIP-RF.00181709ADB282:1.RAINING = false [RE]
DPT {f} HmIP-RF.00181709ADB282:1.RAIN_COUNTER = 0.000000 [RE]
DPT {b} HmIP-RF.00181709ADB282:1.RAIN_COUNTER_OVERFLOW = false [RE]
DPT {i} HmIP-RF.00181709ADB282:1.SUNSHINEDURATION = 981 [RE]
DPT {b} HmIP-RF.00181709ADB282:1.SUNSHINEDURATION_OVERFLOW = false [RE]
DPT {b} HmIP-RF.00181709ADB282:1.SUNSHINE_THRESHOLD_OVERRUN = false [RE]
DPT {f} HmIP-RF.00181709ADB282:1.WIND_SPEED = 0.000000 [RE]
DPT {b} HmIP-RF.00181709ADB282:1.WIND_THRESHOLD_OVERRUN = false [RE]
DPT {f} svHmIPSunshineCounterYesterday_1305 = 884.000000 [RWE]
DPT {f} svHmIPSunshineCounterToday_1305 = 883.000000 [RWE]
DPT {f} svHmIPRainCounterToday_1305 = 0.000000 [RWE]
DPT {f} svHmIPRainCounterYesterday_1305 = 0.000000 [RWE]
DPT {i} HmIP-RF.00181709ADB282:1.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
DPT {i} HmIP-RF.00181709ADB282:1.HUMIDITY_STATUS = 0 [RE]
DPT {i} HmIP-RF.00181709ADB282:1.ILLUMINATION_STATUS = 0 [RE]
DPT {i} HmIP-RF.00181709ADB282:1.RAIN_COUNTER_STATUS = 0 [RE]
DPT {i} HmIP-RF.00181709ADB282:1.WIND_SPEED_STATUS = 0 [RE]
Sehen würde ich gerne die Werte "svHmIPSunshineCounterToday_1305", "svHmIPRainCounterToday_1305" und "svHmIPRainCounterYesterday_1305"
Leider komme ich mit deinen Infos nicht richtig weiter :(
Ich habe bisher immer mit Tutorials und den schon vorhandenen Beiträgen im Forum alles hinbekommen. Dieses mal stehe ich leider echt auf dem Schlauch :(
Versucht habe ich:
- "get Wettersensor datapoint svHmIPRainCounterToday_1305" - Meldung: "HMCCUDEV: Wettersensor No state channel defined"
dann dachte ich der Channel fehlt, Channel müsste 1 sein, da unter 1 ja alles aufgelistet wird:
- "get Wettersensor datapoint 1.svHmIPRainCounterToday_1305" - Meldung: "HMCCUDEV: Wettersensor Invalid datapoint"
geht also auch nicht. Vielleicht wirklich was mit 00181709ADB282:1?!
also - "get Wettersensor datapoint 00181709ADB282.1.svHmIPRainCounterToday_1305" - Meldung: "HMCCUDEV: Wettersensor No state channel defined"
Habe auch noch Varianten mit Doppelpunkt statt Punkten versucht - klappte auch nicht :(
Ein ccureadingfilter habe ich aktuell gar nicht definiert, daher sollten alle "durchgehen" - habe aber auch einmal "svHmIPRainCounterToday_1305" dort eingetragen und dann versucht die oberen Befehle auszuführen, was auch nicht funktioniert hat.
Kannst du mir sagen wie ich da ran komme, bzw die Syntax für mein "get" sein müsste? Sorry, wenn ich mich gerade zu blöd anstelle :-[
PS: Bin die nächsten 2 Tage nicht am PC bzw. zuhause, kann daher erst Sonntag wieder testen.
Gruß Stefan
wie ist es wenn du ccureadingfilter auf .* setzt und dann get Wettersensor update machst?
Ich bin wieder zuhause und habe es direkt ausprobiert. Funktioniert leider nicht.
Ich habe wie du gesagt hast den ccureadingfilter auf .* gesetzt und dann "get Wettersensor update" ausgeführt.
Leider habe ich dadurch aber keine neuen Readings erhalten.
Ich kann das leider nur mit verknüpften Systemvariablen testen, da ich keine entsprechenden Geräte im Einsatz habe. Da funktioniert es. Sorry.
Hallo zusammen,
jetzt bin ich auch in das dargestellte Problem gelaufen.
Einzelne Datenpunkte konnte ich auch nicht auslesen, weder aus dem Gerät (dev) noch aus dem Kanal 1 (chn). Es kommt immer eine leere Rückgabe bei "get datapoint". Da bei Angabe eines Datenpunkts, der nicht existiert, die Fehlermeldung "invalid datapoint" kommt, gehe ich davon aus, dass die Syntax der Abfrage richtig ist.
z.B.
get Hm_HmIP_SWO_PR_001858A98C1A56 datapoint 1.RAINING -> leere Rückgabe
get Hm_HmIP_SWO_PR_001858A98C1A56 datapoint 1.RAININGx -> invalid datapoint
Die Firmware der HmIP-SWO-PR habe ich übrigens schon auf die aktuelle 1.0.14 ge-updated.
Um hier weiter zu kommen, parse ich jetzt die Rückgabe von "get Hm_HmIP_SWO_PR_001858A98C1A56 deviceinfo" und schreibe die Werte in Dummy-Variablen.
Das Ganze mache ich in einem Notify und triggere auf das initialized-Event. Unschön ist nur, dass dieses Event doppelt kurz hintereinander kommt. Mal sehen wie das zu lösen ist.
Diese Sonderlösung ist Murks, funktioniert aber.
Definiert habe ich folgende Dummies:
define WETTER_ACTUAL_TEMPERATURE dummy
define WETTER_HUMIDITY dummy
define WETTER_ILLUMINATION dummy
define WETTER_RAINING dummy
define WETTER_RAIN_COUNTER dummy
define WETTER_SUNSHINEDURATION dummy
define WETTER_WIND_SPEED dummy
define WETTER_STATETIME dummy
Das ist nur eine Auswahl der Datenpunkte und STATETIME soll dann mit dem Zeitpunkt der Abfrage belegt.
Das Notify sieht dann so aus:
Hm_HmIP_SWO_PR_001858A98C1A56.hmstate..Initialized {
my $deviceinfo = fhem("get Hm_HmIP_SWO_PR_001858A98C1A56 deviceinfo");;
if ($deviceinfo =~/ACTUAL_TEMPERATURE.=.(\d+\.\d+)/gi) {
fhem("set WETTER_ACTUAL_TEMPERATURE ".$1);;
};;
if ($deviceinfo =~/HUMIDITY.=.(\d+)/gi) {
fhem("set WETTER_HUMIDITY ".$1);;
};;
if ($deviceinfo =~/ILLUMINATION.=.(\d+)\./gi) {
fhem("set WETTER_ILLUMINATION ".$1);;
};;
if ($deviceinfo =~/RAINING.=.(false|true)/gi) {
fhem("set WETTER_RAINING ".$1);;
};;
if ($deviceinfo =~/RAIN_COUNTER.=.(\d+)\./gi) {
fhem("set WETTER_RAIN_COUNTER ".$1);;
};;
if ($deviceinfo =~/SUNSHINEDURATION.=.(\d+)/gi) {
fhem("set WETTER_SUNSHINEDURATION ".$1);;
};;
if ($deviceinfo =~/WIND_SPEED.=.(\d+\.\d+)/gi) {
fhem("set WETTER_WIND_SPEED ".$1);;
};;
(my $sec,my $min,my $hour,my $mday,my $mon,my $year,my $wday,my $yday,my $isdst) = localtime();;
my $newdate = ($year+1900)."-".sprintf("%02d",($mon+1))."-".sprintf("%02d",$mday)." ".sprintf("%02d",$hour).":".sprintf("%02d",$min).":".sprintf("%02d",$sec);;
fhem("set WETTER_STATETIME ".$newdate);;
}
Gruß
Frank
Da stimmt etwas anderes nicht. 1.RAINING ist ein normaler Datenpunkt. Das muss mit get datapoint funktionieren. Probleme gibt es mit Pseudo-Datenpunkten im Format "svHmIPSunshineCounterYesterday_1305". Also mit einem _ und einer Zahl am Ende.
Was meinst Du mit leerer Rückgabe? Der Befehl get datapoint zeigt im FHEM Fenster nichts an. Er aktualisiert lediglich das entsprechende Reading (wenn ccureadingfilter korrekt gesetzt ist und event-on-change-reading bzw. event-on-update-reading richtig definiert ist).
Und wenn alle diese Voraussetzungen erfüllt sind und auch noch der RPC Server läuft, wird das Reading automatisch aktualisiert und du brauchst get datapoint nicht.
Hallo zusammen,
ich wollte das Thema nochmal hochschieben.
Gibt es hierfür mittlerweile eine Lösung, ich würde gerne die Datenpunkte svHmIPRainCounterToday_1680 und svHmIPRainCounterYesterday_1680 auslesen.
Danke, Christian
Hallo zusammen ich hatte die Probleme auch mit dem Regen. Ich mache es über ein notify in einer bestimmten Zeitabfrage get update Wetterstation
so bekomme ich alle 30min ein aktuelles reading
vielleicht hilft das jemanden weiter.
Geht vermutlich nicht anders, da es Systemvariablen sind. Von denen weiß die RPC Schicht der CCU nichts. Daher muss man sie manuell aktualisieren bzw. per Notify oder at.
Hallo Zap,
ich wollte mal fragen ob es evtl. mit der 5.0er HMCCU neue Möglichkeiten gibt, die virtuellen Datenpunkte zu aktualisieren?
Irgendwie geht jetzt mein "at" Script, das alle 5 min. ein "get ts_wetter update" abfeuert auch nicht mehr. Die Readings "svHmIPRainCounterYesterday_xxxx" usw. werden nicht aktuallisiert.
Zitat von: Borkk am 19 Dezember 2021, 21:07:13
Hallo Zap,
ich wollte mal fragen ob es evtl. mit der 5.0er HMCCU neue Möglichkeiten gibt, die virtuellen Datenpunkte zu aktualisieren?
Irgendwie geht jetzt mein "at" Script, das alle 5 min. ein "get ts_wetter update" abfeuert auch nicht mehr. Die Readings "svHmIPRainCounterYesterday_xxxx" usw. werden nicht aktuallisiert.
Versuche es mal im AT Befehl mit "get extValues".
Falls das nicht funktioniert, musst Du ein paar mehr Infos liefern (list vom Device, wie sieht der AT Befehl aus, gibt es Meldungen im FHEM Log).
Automatisch aktualisieren kann auch die 5.0 nicht. Wie vorher schon mal geschrieben: Die CCU schickt die Info nicht automatisch.
Hallo Zap,
Ich hatte mir zwischenzeitig mit einem kleinen Umweg geholfen. Mit dem Attribut "ccuGetVars 300" holt die HMCCU die betroffenen Variablen als Readings ab. Aus kosmetischen Gründen schreibe ich sie dann per notify mit setreading in das Device der Wetterstation.
Der Weg über "get extValues" scheint auch zu gehen. Ich werde beide mal parallel laufen lassen und sehen welcher "stabiler" läuft.
Danke und schöne (Rest)Weihnachten :)