Moin Forum,
leide finde ich im Forum, Wiki, Commandref keinen Ansatzpunkt, deshalb mal die Frage:
Wie bekomme ich einen Wert, der mit FHEM2FHEM übergeben wurde in einen Dummy?
FHEMFHEM ist so definiert:
define FB7390 FHEM2FHEM 172.16.19.10:7072 LOG:.*
attr FB7390 room OWX
Der Eventmonitor liefert die entsprechenden Events:
2014-03-17 10:12:30.269 OWMULTI OWX_26_89D626010000 feuchte: 71.8757906221107
2014-03-17 10:12:30.277 OWMULTI OWX_26_89D626010000 Temperatur: 15.8
2014-03-17 10:12:32.061 OWMULTI OWX_26_09FF26010000 H: 69.82
2014-03-17 10:12:32.072 OWMULTI OWX_26_09FF26010000 VDD: 5.16
2014-03-17 10:12:32.081 OWMULTI OWX_26_09FF26010000 temperature: 15.83125
2014-03-17 10:12:32.089 OWMULTI OWX_26_09FF26010000 absFeuchte: 8.4
2014-03-17 10:12:32.097 OWMULTI OWX_26_09FF26010000 T: 15.83 H: 69.82 V D: 10.3 A: 8.4
2014-03-17 10:12:34.070 OWMULTI OWX_26_402E27010000 voltage: 3.2
2014-03-17 10:12:34.079 OWMULTI OWX_26_402E27010000 VDD: 5.16
2014-03-17 10:12:34.088 OWMULTI OWX_26_402E27010000 temperature: 15.9219
2014-03-17 10:12:34.097 OWMULTI OWX_26_402E27010000 T: 15.92 voltage: 3.20 V
2014-03-17 10:12:34.105 OWMULTI OWX_26_402E27010000 feuchte: 72.2249113713145
2014-03-17 10:12:34.116 OWMULTI OWX_26_402E27010000 Temperatur: 15.9
2014-03-17 10:12:35.230 OWTHERM OWX_28_2845BA030000 temperature: 15.8125
2014-03-17 10:12:35.238 OWTHERM OWX_28_2845BA030000 T: 15.81 °C
2014-03-17 10:12:35.246 OWTHERM OWX_28_2845BA030000 Temperatur: 15.81
Ich möchte jetzt z.B. diesen Wert:
2014-03-17 10:12:30.269 OWMULTI OWX_26_89D626010000 feuchte: 71.8757906221107
in einen Dummy schreiben.
Ich habe mir einen Dummy angelegt und versucht, es mit einem userReading zu machen, das klappt leider nicht:
define test dummy
attr test room test
attr test userReadings Feuchte {ReadingsVal("OWX_26_89D626010000","feuchte",0)}
da es sich bei dem Readings um OWX-Readings handelt, geht auch der RAW-Modus nicht.
Wer gibt mir das fehlende Puzzleteil?
Danke Joachim
Mit einem notify, das den per f2f eingehende Event mittels set auf den dummy schreibt
Wenn du nur loggen willst brauchst du den dummy nicht
So, da keiner eine Idee hatte, habe ich mal ohne Ahnung vor Perl die 98_dummy.pm bearbeitet.
Das ist zwar ersteinmal nur ein Würgaround, aber mir reicht es aus.
Ich kann jetzt dummys anlegen, die die Werte abgreifen, einfach den Originalnamen mit 2 vorangestellten Zeichen als Dummy anlegen.
Also:
Originalname --> OWX_28_6119BA030000
Dummyname --> D_OWX_28_6119BA030000
und die Readings werden abgegriffen.
geänderte Datei im Anhang. ist als neues Modul cloneDummy in FHEM seit dem 23.03.2014 enthalten.
Puschel, kannst Du diesen Tread nach Automatisierung verschieben, damit da eventuell dann daran weitergearbeitet werden kann, bis man es einchecken kann.
Gruß Joachim
PS.: UliiM, zu spät.
Gerne - und schupps. ;D
Hallo Joachim,
super sieht gut aus.
Habe aber ein kleines Problem noch bei den Readings meine und deine Sensoren kommen mir : am Ende schön währe ohne.
(//)
Gruß Olaf
Das funktioniert doch nur bis zum nächsten Update von 98_dummy.pm. Das Letzte war bei mir am 12.03.14...
Das kann man wie Uli bereits erwähnt hat, eleganter mit einem notify abarbeiten ($NAME $EVENT). Zuvor noch das device lokal auf Existenz prüfen.
Das hat den entscheidenden Vorteil, dass der User die Namen bestimmt, die Kontrolle behält und ohne Schaden "update" ausführen kann...
Moin Olaf,
den Doppelpunkt bekommt man raus, das kann ich aber erst morgen machen, da heute am falschen Rechner.
Moin Groby,
ob das mit einem notify eleganter ist, glaube ich nicht, da man dann für jedes Reading ein notify anlegen muss,
das mit dem Update ist bekannt, und auch nur solange, bis das ganze im normalen Update ist,
dass bei dem Namen zur Zeit noch ein Kunstgriff nötig ist, hängt mit einen Problem zusammen das ich bisher noch nicht lösen konnte:
Der Dummy klaut dem von FHEM2FHEM übergebenen Wert seine Bezeichnung:
2014-03-17 10:12:30.269 OWMULTI OWX_26_89D626010000 feuchte: 71.8757906221107
das OWMULTI wird duch Dummy ersetzt.
Hintergedanke des ganzen ist, dass man mit wenig Aufwand auch die Devices mit FHEM2FHEM anlegen kann, die nicht RAW fähig sind.
Ausserdem will ich OWX auf meine FB auslagern, da sie auf dem HauptFHEM das System blockiert.
Das ganze eignet sich, wenn es vernünftig funktioniert auch hervorragend für ein Testsystem.
Gruß Joachim
ich find die Idee klasse, habe es jetzt noch nicht probiert, so wie es klingt ist es aber sehr interessant für mich... hier laufen zur zeit zwei fhem umgebungen - ich hab sie aber noch nicht gekoppelt. das möchte ich auch erst machen wenn ein paar kleinere stolpersteine beseitigt wurden... man ist halt immer am basteln mit fhem...
Hallo Joachim,
Das macht Sinn, wenn es konsequent umgesetzt wird. Bis dato habe ich "state" von Hand zebröselt. Es sollte aber über ein Attribut implementiert werden, sodass man den "Client-Namen" frei wählen kann:
attr f2f link Name_host Name_client
Jedenfalls so in der Art...
MfGroby
Moin Groby,
das mit dem attr wäre auch eine Möglichkeit, bisher war der Gedankengang, den gleichen Namen, wie auf dem entfernten Rechner zu nehmen, um die Übersicht nicht zu verlieren, und nur einen Dummy zu definieren, rest geht von alleine.
Gruß Joachim
Nachtrag: es sollten nicht alle "readings" blind geklont werden. Ich will "weather" auslagern, da es auf der FB7390 manchmal bis zu 3 Sek braucht um die Daten zu aktualisieren...
Grundsätzlich interessieren mich aber nur:
temperature
code
current_date_time
Mit anderen Worten ein Attribut welche readings kopiert werden soll wäre user-friendly:
attr f2f reading temperature,code,current_date_time
so oder so ähnlich...
Moin Groby,
Das mit einem ausschliessen von Readings wie bei DbLog Exlude sollte sich sicherlich machen lassen, ist aber nicht unbedingt nötig, da die Readings dann in den Dummy geschrieben werden, wenn sie von FHEM2FHEM geliefert werden.
Also selbst wenn Dein weather erst nach zwei Stunden kommen würde, ist es egal, und blockiert FHEM nicht.
Das schöne ist, dass es im Moment nur 10 Zeilen Code in der Dummy.pm sind, und ein einfaches erstellen eines Dummys ausreicht.
also nur:
define D_OWX_28_6119BA030000 dummy
und schon werden alle readings, die auf OWX_28_6119BA030000 matchen, in den Dummy geschrieben, und stehen zur Verfügung, können mit stateFormat formatiert werden, und wahrscheinlich auch im Dashboard eingebunden werden.
Gruß Joachim
Ich glaube hier ist ein Applaus fällig!
Moin der Lolo,
Danke, ist aber sicherlich noch zu früh.
hast Du es schon ausprobiert?
Gruß Joachim
Nein noch nicht - ich habe fhem2fhem noch nicht am laufen...
Ein Cubietruck ist in der Post, ich wollte warten bis der den Platz des Raspi eingenommen hat...
Schade
Hallo Ihr,
anbei die 98_dummy.pm die die Readins ohne ":" liefert.
Gruß Olaf und nacht
PS. Anhang entfernt da dieses Modul zu 98_cloneDummy.pm geworden ist.
Danke
Hallo Jo,
du solltes aber dann die Datei wieder oben einsetzen. ;D
Gruß Olaf
Aber natürlich, das geht aber erst wenn ich Feiermorgen habe und zu Hause bin.
Gruß Joachim
Guten Morgen Forum,
in Antwort 2 die geänderte dummy.pm.
Bei mir und bei Olaf funktioniert es damit.
Gruß Joachim
Hallo Joachim,
ich hab den rpi entstaubt und ein wenig rumprobiert. Das läuft wesentlich geschmeidiger als erwartet.
Ich muss die Events bei fhem1 noch anpassen, damit auch die nötigen readings kopiert werden. Im Moment bekomme ich "temperature" immer als "T". Vermutlich weil es aus dem original "state"-reading kopiert wird.
Wenn's klappt werde ich testweise Weather im Live System auslagern...
Kann mich nur der-Lolo anschliessen: Applaus!!!
MfGroby
Groby, danke für Deine Rückmeldung.
Ich bin noch nicht wirklich zufrieden damit, da die Namen der Devices angepasst werden müssen, und im Eventmonitor 2 mal geloggt wird,
- einmal wenn FHEM2FHEM die Daten übergibt,
- einmale wenn das Dummy-Device sein Readings-Update bekommt.
Mal abwarten, was Rudi ;D dazu sagt.
Mir würde eine Lösung, die in FHEM2FHEM integriert ist, am besten gefallen, also nach dem System, dass man FHEM2FHEM normal definiert, und mit einem Attribut entscheidet, dass dieses Device angelegt wird, und die Werte dann nicht von FHEM2FHEM geloggt werden, sondern direkt in das Device als Reading übergeben werden.
Gruß Joachim
Hallo Joachim,
Absolut. Auf die Antwort von Rudi bin ich gespannt.
Falls Du noch weiter experimentierst hier noch ein paar findings:
Wenn "state" upgedated wird mit:
CUL_HM HK_Flur T: 19.5 desired: 20.0 valve: 35
wird nur ein reading "T 19.5" erzeugt und bei Weather zerstückelt es die "current_date_time"
Original: "current_date_time" "18 Mar 2014 7:50 am CET" "2014-03-18 08:36:52"
Kopie: "current_date_time" "18" "2014-03-18 07:55:00"
Wenn es noch etwas zum Testen gibt - ich bin dabei 8)
MfGroby
Die beiden Fälle habe ich in der Readingsaufbereitung noch nicht berücksichtigt.
Baue ich eventuell heute Nachmittag ein. Nu will ich erstmal ins Bett.
Gruß Joachim
Hallo Joachim,
ich habe jetzt nach einger Zeit Betrieb feststellen müssen, dass ich noch einen Fehler habe.
Ich logge die absFeuchte und die relFeuchte in meinen ersten PI wech. Die Dummyschaltung überträgt mir aber die relFeuchte nicht. Ich lasse meinen Test Pi mal laufen und schaue dann mal ob sich da was ändert.
Gruß Olaf
P.S. Über HM scheind es zu klappen. Es kann aber auch an der Glättung liegen, dass ich noch keine Daten bekommen habe.
Moin Olaf,
schaue ich ir morgen mal an, bin jetzt auf der Arbeit ohne Testmöglichkeit.
Gruß Joachim
Jup war klar,
Ich lasse Ihn halt jetzt mal nonstop Laufen.
Gruß Olaf
Olaf, lade mal bitte einen Auszug aus dem Eventmonitor hoch, mal sehen, ob die Events überhaupt ankommen.
Gruß Joachim
Komando zu rück.
Das hat durch die Glättung halt nur so lange gedauert bis die Daten kommen.
Scheint alle klar zu sein.
Gruß Olaf
Na, geht doch.
Das ist schön.
Gruß Joachim
So, neu Testversion in Antwort 2.
Das reading sollte jetzt nicht mehr abgeschnitten sein.
Gruß Joachim
Edit:
98_dummy.pm nochmal erweitert, Wenn kein stateFormat gesetzt, wird automatich ein Wert ausgewählt.
Für mich ist das ganze jetzt fertig, es sei denn es gibt weitere Kommentare.
Joachim,
jetzt ist der Applaus fällig...
Funzt Super!!! Anbei 2 Beispiel-readings...
Readings
T 20.8 desired: 20.0 valve: 12 2014-03-19 15:48:09
state T: 20.8 desired: 20.0 valve: 12 2014-03-19 15:48:09
Readings
brightness 207 2014-03-19 15:49:52
state brightness: 207 2014-03-19 15:49:52
PS: die Datei ist in Antwort 3
MfGroby
Super, dass es bei Dir läuft.
Ich werde es bei mir auch noch etwas ausprobieren, und dann mit Rudi Kontakt aufnehmen.
ZitatPS: die Datei ist in Antwort 3
Beitrag 3, bzw Antwort 2.
Gruß Joachim
@all,
Heir geht es weiter:
http://forum.fhem.de/index.php/topic,21654.0.html
gruß Joachim