HMCCU Beispiel Geräte-Definitionen

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

Vorheriges Thema - Nächstes Thema

Grimmschak

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

zap

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

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,

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;
}

zap

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

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

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

zap

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

miwu

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


zap

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

miwu

Vielen Dank, das funktioniert prima.

Grimmschak

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

zap

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


zap

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

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.

zap

Ich glaube, ich habe den Fehler gefunden. Noch ein wenig Geduld bitte ...
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