[Gelöst] Wert eines Device kopieren / übertragen

Begonnen von Ralf_F, 04 September 2017, 23:22:59

Vorheriges Thema - Nächstes Thema

Ralf_F

hallo zusammen,

leider bin ich noch Anfänger in der fhem-Welt und versuche vergeblich den variablen Zahlenwert 262 im STATE von "Wirkleistung_EVU  in STATE von "Zaehler_EVU_zur_SPS "  zu kopieren / übertragen. Der Variablenwert wird bereits erfolgreich zu einer SPS übertragen, aber leider nur wenn ich diesen mit dem set-Button manuell setze (2222).
egal was ich probiert habe es funzt nicht.
Wie ist die Vorgehensweise um dieses Problem zu lösen?

Quelle:
Internals:
   NAME       Wirkleistung_EVU
   NR         20
   STATE      262
   TYPE       dummy
   READINGS:
     2017-09-04 22:55:56   state           262
Attributes:
   event-on-change-reading state

Ziel:
Internals:
   ADDRESS    4
   AREA       db
   DATATYPE   s16
   DB         30
   DEF        db 30 4 s16
   IODev      SPS
   LASTInputDev SPS
   LENGTH     2
   MSGCNT     903
   NAME       Zaehler_EVU_zur_SPS
   NR         36
   SPS_MSGCNT 903
   SPS_TIME   2017-09-04 23:15:03
   STATE      2222
   TYPE       S7_AWrite
   READINGS:
     2017-09-04 23:15:03   state           2222
Attributes:
   IODev      SPS
   room       SPS

wäre um Unterstützung sehr dankbar!
danke im Voraus.

Ralf

MadMax-FHEM

Ein Notify auf Wirkleistung_EVU (mal im Eventmonitor schauen wenn sich der Wert ändert und dann ein notify "kreieren lassen") und dort dann das set ausführen:

set Zaehler_EVU_zur_SPS $EVENT

(evtl. auch $EVTPART0 bzw. $EVTPART1)

Siehe auch:
https://wiki.fhem.de/wiki/Event

https://wiki.fhem.de/wiki/Notify

Aktuell nur mobil, daher so kurz...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CoolTux

Erstmal ist es für uns Helfenden besser wenn Du Deine Ausgabe der Geräte in Code Tags bringst. Das ist das # Zeichen in der Symbolleiste des Forumeditors.
Dann musst Du wissen das in FHEM immer mit Events gearbeitet wird. Wenn Du also etwas machen möchtest muß vorher eine Aktion stattgefunden haben. Ein Event muß ersichtlich sein im Eventmonitor und darauf kannst Du dann ein Notify ansprechen lassen.

In Deinem Fall reicht ein Notify welches auf ein Event Deines Quelldevices reagiert, und den Event eins zu eins an Dein Ziel durch reicht.

Wo bei jetzt wo ich so schaue, wäre nicht eher das Zaehler_EVU_zur_SPS Device die Quelle und Du willst in den Dummy schreiben?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

@Ralf_F Hier liegt ein grundsätzliches Verständnisproblem vor.

Du solltest Dich nicht um den Wert in "STATE" kümmern, das ist nur ein interner Wert, der "irgendwie" angezeigt wird. Wenn Du in dem device das Attribut stateFormat auf "Donnerstag" stellst, dann steht Donnerstag in STATE.

Was Du eigentlich tun willst, ist den Messwert in "state" verarbeiten. Das ist der Wert der in den readings steht und der tatsächlich den "Messwert" darstellt.

FHEM erzeugt einen event, wenn ein reading beschrieben wird. Diesen event kannst Du auswerten, das haben die Vorredner hier im Thread bereits beschrieben.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ralf_F

danke für Eure Antworten :-)

definitiv war ich auf dem falschen Weg mit dem STATE... danke für Eure Hinweise.

ich möchte vom dummy als Quelle den Messertwert in das Ziel-Device "Zaehler_zur_SPS" schreiben.

derzeit schaut die fhem.cfg so aus:

define Zaehler_EVU_zur_SPS S7_AWrite db 30 4 s16
attr Zaehler_EVU_zur_SPS IODev SPS
attr Zaehler_EVU_zur_SPS room SPS
define notify_1 notify Wirkleistung_EVU:.* set Zaehler_EVU_zur_SPS:.* $EVENT


Auszug Event Monitor:
2017-09-05 08:45:59 S7_AWrite Zaehler_EVU_zur_SPS 2222
2017-09-05 08:46:04 S7_AWrite Zaehler_EVU_zur_SPS 2222
2017-09-05 08:46:06 dummy Wirkleistung_EVU -107

egal was ich eingebe $EVENTPART0 ,1 ,2  im Zaehler_EVU_zur_SPS steht immer nur 2222
fehlt bei dem notify noch was?
und wie oft wird dieses in dieser Konfiguration ausgeführt?

Gruß,
Ralf


betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Ausserdem verstehe ich diesen set Befehl ehrlich gesagt nciht

set Zaehler_EVU_zur_SPS:.* $EVENT


set Zaehler_EVU_zur_SPS $EVENT
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

#7
wollte ich grade noch schreiben, dass das auch falsch ist :)

Ich hab das grade mal alles bei mir nachgebaut.


define notify_1 notify Wirkleistung_EVU:.* set Zaehler_EVU_zur_SPS $EVENT


funktioniert bei mir einwandfrei.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ralf_F

vielen Dank betateilchen! und auch an die anderen!

Problem gelöst!

ich hab in der fhem.cfg den code manell angepasst, da ich das über die buttons in der notify-Konfiguration noch nicht hin bekomme :
define notify_1 notify Wirkleistung_EVU:.* set Zaehler_EVU_zur_SPS $EVENT
damit wird der Messwert nun korrekt übertragen :-)

danke und schönen Tag
Gruß,
Ralf

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...