Hallo alle,
Ich habe zur Übertragung von Temperaturwerten aus dem RASPI in eine LOGO folgende Codezeilen geschrieben, welche im Prinzip auch funtionieren
#Wert schreiben
define Temperaturkorrektur_1 S7_AWrite db 0 0 u16
attr Temperaturkorrektur_1 IODev Logo_Temp
attr Temperaturkorrektur_1 event-on-change-reading temperature
attr Temperaturkorrektur_1 event-on-update-reading state
attr Temperaturkorrektur_1 group Raumluft
attr Temperaturkorrektur_1 room Keller
# Rücklesen
define Ruecklesen_1 S7_ARead db 0 0 u16
attr Ruecklesen_1 IODev Logo_Temp
attr Ruecklesen_1 event-min-interval .*:60
attr Ruecklesen_1 event-on-change-reading state
attr Ruecklesen_1 event-on-update-reading state
attr Ruecklesen_1 group Raumluft
attr Ruecklesen_1 room Keller
attr Ruecklesen_1 stateFormat {sprintf("%.f",ReadingsVal($name,"state",0))}
#notify auf 1Wire Sensor
define Tempwert_1 notify Temp_1_0517907be3ff:temperature.* { fhem("set Temperaturkorrektur_1 ".sprintf("%.0f",$EVTPART1)) }
attr Tempwert_1 room Keller
#Wert schreiben
define Temperaturkorrektur_2 S7_AWrite db 0 2 u16
attr Temperaturkorrektur_2 IODev Logo_Temp
attr Temperaturkorrektur_2 event-on-change-reading temperature
attr Temperaturkorrektur_2 event-on-update-reading state
attr Temperaturkorrektur_2 group Raumluft
attr Temperaturkorrektur_2 room Keller
# Rücklesen
define Ruecklesen_2 S7_ARead db 0 2 u16
attr Ruecklesen_2 IODev Logo_Temp
attr Ruecklesen_2 event-min-interval .*:60
attr Ruecklesen_2 event-on-change-reading state
attr Ruecklesen_2 event-on-update-reading state
attr Ruecklesen_2 group Raumluft
attr Ruecklesen_2 room Keller
attr Ruecklesen_2 stateFormat {sprintf("%.f",ReadingsVal($name,"state",0))}
#notify auf 1Wire Sensor
define Tempwert_2 notify Temp_2_051790a916ff:temperature.* { fhem("set Temperaturkorrektur_2 ".sprintf("%.0f",$EVTPART1)) }
attr Tempwert_2 room Keller
Im Prinzip deshalb weil Sensor1 korrekt läuft und Sensor2 nicht. Der einzige Unterschied den ich sehe ist in den Internals
DEF
Temp_1_0517907be3ff:temperature.* { fhem("set Temperaturkorrektur_1 ".sprintf("%.0f",$EVTPART1)) }
NAME
Tempwert_1
NOTIFYDEV
Temp_1_0517907be3ff
NR
52
NTFY_ORDER
50-Tempwert_1
REGEXP
Temp_1_0517907be3ff:temperature.*
STATE
2018-03-24 08:35:22
TYPE
notify
DEF
Temp_2_051790a916ff:temperature.* { fhem("set Temperaturkorrektur_2 ".sprintf("%.0f",$EVTPART1)) }
NAME
Tempwert_2
NR
61
NTFY_ORDER
50-Tempwert_2
REGEXP
Temp_2_051790a916ff:temperature.*
STATE
active
TYPE
notify
Der fett hinterlegte Teil fehlt beim 2 notify. Hat da jemand einen kreativen Hinweis ? Vielen Dank für Eure Hilfe.
LG Michael
Hallo Michael,
guck doch einfach in den event monitor, ob das event auch wirklich wie in Deinem notify kommt, das notify anspricht, der set-Befehl richtig generiert u. auch ausgeführt wird.
Grüße Markus
ZitatDer fett hinterlegte Teil fehlt beim 2 notify.
Bedeutet, dass fhem.pl kein FHEM-Geraet gefunden hat, was auf dem Regexp passt, oder dass der Regexp zu kompliziert ist. In diesem Fall wohl Ersteres.
Hallo Michael,
was ergibt denn ein list Temp_._.*
Gruß Otto
Hallo,
Danke für die Antworten. Rudolf hatte es sofort richtig erkannt, es lag an einer fehlerhaften Namensgebung.
Nunmehr funktioniert alles wie gewollt. Insbesondere das übertragen des readings aus dem GPIO4 bereitete mir Anfangs Probleme.
LG Michael
Zitates lag an einer fehlerhaften Namensgebung.
Tipp: notify im Event-Monitor anlegen, mit Event-Abwarten, Zeile markieren und "Create/Modify Device"