Hallo, ich lese den Sprittpreis gemäß Wiki aus: https://wiki.fhem.de/wiki/Spritpreismonitor
Weiterhin habe ich einen Dummy eingebaut, welcher den letzten Preis speichert. Ein DOIF soll mir nur eine pushmsg schicken, wenn der Preis sich ändert.
Aber ich erhalte bei jedem Update (300 Sek) eine pushmsg. Beide Devices haben aber den selben Wert
Was mache ich hier bitte falsch?
define PushPreise DOIF ( [AGIPBenzinpreis:SuperE5] ne [AGIPLetzerPreis:state] ) ( set pushmsg msg 'fhem' 'AGIP SuperE5: [AGIPBenzinpreis:SuperE5] €';; set AGIPLetzterPreis [AGIPBenzinpreis:SuperE5] )
Ich habe es auch schon mit dem Operator != probiert. Gleicher Effekt.
Gruß
Thomas
Hi Thomas,
Besser ein "list" des Devices posten, als die Zeile aus der fhem.cfg, dann sieht man mehr. Gib mal ein list von AGIPBenzinpreis und von AGIPLetzerPreis, dann sehen wir, ob die wirklich gleich sind.
Wahrscheinlich kannst du das auch lösen, indem du ein event-on-change-reading auf SuperE5 setzt.
AGIPBenzinpreis:
Internals:
BUSY 0
CFGFN
DEF http://www.clever-tanken.de/tankstelle_details/2376 300
Interval 300
LASTSEND 1518075979.25552
MainURL http://www.clever-tanken.de/tankstelle_details/2376
ModuleVersion 3.4.1 - 18.1.2018
NAME AGIPBenzinpreis
NR 4461
STATE Preis: 1.38 €
TRIGGERTIME 1518076279.25274
TRIGGERTIME_FMT 2018-02-08 08:51:19
TYPE HTTPMOD
addr http://www.clever-tanken.de:80
auth 0
buf
code 200
compress 1
conn
data
displayurl http://www.clever-tanken.de/tankstelle_details/2376
header
host www.clever-tanken.de
httpheader HTTP/1.1 200 OK
Date: Thu, 08 Feb 2018 07:46:19 GMT
Server: Apache/2.4.18 (Ubuntu)
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 12073
Content-Type: text/html; charset=utf-8
Connection: close
httpversion 1.0
hu_blocking 0
hu_filecount 121
hu_port 80
hu_portSfx
ignoreredirects 0
loglevel 4
path /tankstelle_details/2376
protocol http
redirects 0
timeout 2
url http://www.clever-tanken.de/tankstelle_details/2376
value 0
QUEUE:
READINGS:
2018-02-08 08:46:19 SuperE5 1.38
REQUEST:
data
header
ignoreredirects 0
retryCount 0
type update
url http://www.clever-tanken.de/tankstelle_details/2376
value 0
defptr:
readingBase:
SuperE5 reading
readingNum:
SuperE5 _SuperE5
readingOutdated:
requestReadings:
update:
SuperE5 reading _SuperE5
sslargs:
Attributes:
readingsName_SuperE5 SuperE5
readingsRegex_SuperE5 <span>Super E5</span>[^0-9]+([0-9\.]+)
room 10_Draußen
stateFormat Preis: SuperE5 €
userattr readingsName_SuperE5 readingsRegex_SuperE5
Ok, anbei das LIST. Jetzt habe ich soar das Phänomen, dass gar keine Nachricht mehr kommt aber der Preis sich geändert hat.
AGIPLetzterPreis
Internals:
CFGFN
NAME AGIPLetzterPreis
NR 56900
STATE 1.31
TYPE dummy
READINGS:
2018-02-06 22:30:31 state 1.31
Attributes:
Hi thgorjup,
Hast Du beim dem DOIF do always gesetzt? Ein list willst Du uns ja verweigern... :'(
Ansonsten muss der Preis erstmal wieder gleich sein dann würde er danach eine Nachricht schicken. Wenn der Preis sich jedesmal ändert schickt er ohne do always genau einmal eine Nachricht und dann nie wieder.
Gruß Otto
Oh, das wird wohl der Fehler sein. Ich habe jetzt "do always" gesetzt. mal sehen ob es jetzt rund läuft.
Vielen Dank schonmal. Wenn alles ordendlich klappt, setze ich hier auf GELÖST.
Zu früh gefreut, jetzt kommt ständig wieder der selbe Preis alle x Minuten als Pushover. Hier das List.
Ist aber noch eine zweite Preisabfrage dabei. Die ist aber genau gleich aufgebaut.
DOIF
define PushPreise DOIF ( [AGIPBenzinpreis:SuperE5] ne [AGIPLetzterPreis:state] ) ( set pushmsg msg 'fhem' 'AGIP SuperE5: [AGIPBenzinpreis:SuperE5] €';; set AGIPLetzterPreis [AGIPBenzinpreis:SuperE5] )\
DOELSEIF ([VitafyLayenbergerMuesli:Muesli] ne [VitafyLayenbergerMuesliLetzterPreis:state]) ( set pushmsg msg 'fhem' 'Vitafy Layenberger Muesli: [VitafyLayenbergerMuesli:Muesli] €';; set VitafyLayenbergerMuesliLetzterPreis [VitafyLayenbergerMuesli:Muesli] )
PushPreise:
Internals:
CFGFN
DEF ( [AGIPBenzinpreis:SuperE5] ne [AGIPLetzterPreis:state] ) ( set pushmsg msg 'fhem' 'AGIP SuperE5: [AGIPBenzinpreis:SuperE5] €'; set AGIPLetzterPreis [AGIPBenzinpreis:SuperE5] )
DOELSEIF ([VitafyLayenbergerMuesli:Muesli] ne [VitafyLayenbergerMuesliLetzterPreis:state]) ( set pushmsg msg 'fhem' 'Vitafy Layenberger Muesli: [VitafyLayenbergerMuesli:Muesli] €'; set VitafyLayenbergerMuesliLetzterPreis [VitafyLayenbergerMuesli:Muesli] )
NAME PushPreise
NR 57137
NTFY_ORDER 50-PushBenzinpreis
STATE cmd_1
TYPE DOIF
READINGS:
2018-02-08 14:11:52 Device VitafyLayenbergerMuesli
2018-02-08 14:11:25 cmd 1
2018-02-08 14:11:25 cmd_event AGIPBenzinpreis
2018-02-08 14:11:25 cmd_nr 1
2018-02-08 14:11:25 e_AGIPBenzinpreis_SuperE5 1.34
2018-02-08 14:11:52 e_VitafyLayenbergerMuesli_Muesli 11.39
2018-02-06 22:28:32 mode enabled
2018-02-08 14:11:25 state cmd_1
Regex:
condition:
0 ReadingValDoIf($hash,'AGIPBenzinpreis','SuperE5') ne ReadingValDoIf($hash,'AGIPLetzterPreis','state')
1 ReadingValDoIf($hash,'VitafyLayenbergerMuesli','Muesli') ne ReadingValDoIf($hash,'VitafyLayenbergerMuesliLetzterPreis','state')
devices:
0 AGIPBenzinpreis AGIPLetzerPreis
1 VitafyLayenbergerMuesli VitafyLayenbergerMuesliLetzterPreis
all AGIPBenzinpreis AGIPLetzerPreis VitafyLayenbergerMuesli VitafyLayenbergerMuesliLetzterPreis
do:
0:
0 set pushmsg msg 'fhem' 'AGIP SuperE5: [AGIPBenzinpreis:SuperE5] €'; set AGIPLetzterPreis [AGIPBenzinpreis:SuperE5]
1:
0 set pushmsg msg 'fhem' 'Vitafy Layenberger Muesli: [VitafyLayenbergerMuesli:Muesli] €'; set VitafyLayenbergerMuesliLetzterPreis [VitafyLayenbergerMuesli:Muesli]
2:
helper:
DOIF_Readings_events
DOIF_eventas
event Muesli: 11.39
globalinit 1
last_timer 0
sleeptimer -1
timerdev AGIPBenzinpreis
timerevent SuperE5: 1.34
triggerDev VitafyLayenbergerMuesli
timerevents:
SuperE5: 1.34
timereventsState:
SuperE5: 1.34
triggerEvents:
Muesli: 11.39
triggerEventsState:
Muesli: 11.39
internals:
itimer:
readings:
0 AGIPBenzinpreis:SuperE5 AGIPLetzerPreis:state
1 VitafyLayenbergerMuesli:Muesli VitafyLayenbergerMuesliLetzterPreis:state
all AGIPBenzinpreis:SuperE5 AGIPLetzerPreis:state VitafyLayenbergerMuesli:Muesli VitafyLayenbergerMuesliLetzterPreis:state
trigger:
uiState:
uiTable:
Attributes:
do always
Gelöst! Dummer Tippfehler! :'(