Hallo zusammen,
ich bin ja derzeit dabei, unsere Energiesparte im Haus etwas zu visualisieren. Ich greife die Energiewerte unserer SMA Webbox mit dem Webbox Modul ab.
Ich wollte jetzt ganz gerne einen Betriebsstatus über einen Dummy darstellen. Nur habe ich das bis jetzt nur über Komponenten gemacht, die An oder Aus, Auf oder Zu, ausgegeben haben. Da war das nicht schwer. Doch jetzt habe ich es nicht so einfach. Ich lasse mir über das state des Webboxmoduls die aktuelle Leistung in Watt anzeigen.
Ich würde es jetzt so machen, dass wenn ein Wert größer 0 anliegt, der Dummy auf AN springt. Nun weiß ich nicht so recht, wie ich diese Zahlenbedingung in ein Notify einbinde.
Oder hat noch jemand eine andere Idee...?
Viele Grüße..
André
z.B.
define n_webbox_watt notify webbox:state.* {fhem("set DUMMY on") if(Value($NAME) > 0)}
(ungetestet)
Gruß
Dan
EDIT:
Und wenn wieder ausgeschaltet werden soll sobald wieder 0, dann so:
define n_webbox_watt notify webbox:state.* {if(Value($NAME) > 0){fhem("set DUMMY on")} else {fhem("set DUMMY off")}}
Hallo DeeSPe,
vielen Dank für deine Hilfe. Ich hatte nochmal nachgedacht mit dem "state" Befehl und habe ihn durch das Reading" Gemittelte Leistung" ersetzt.
Sonst geht der Dummy bei ganz wenig Wind an und aus im Wechsel. Über die Gemittelte Leistung kommt das nicht vor. Darum die Änderung.
Ich habe den ersten Code eingegeben. Heraus kam folgende Meldung:
To add a regexp an eventTypes definition is needed
Den zweiten Code hatte ich mal testweise 1:1 übernommen. Da kam die gleiche Meldung.
So eine Meldung hatte ich noch nicht. Wie kann ich das Problem lösen ?
Viele Grüße und besten Dank
André
Zitat von: Stargazer am 08 August 2016, 16:54:36
Hallo DeeSPe,
vielen Dank für deine Hilfe. Ich hatte nochmal nachgedacht mit dem "state" Befehl und habe ihn durch das Reading" Gemittelte Leistung" ersetzt.
Sonst geht der Dummy bei ganz wenig Wind an und aus im Wechsel. Über die Gemittelte Leistung kommt das nicht vor. Darum die Änderung.
Ich habe den ersten Code eingegeben. Heraus kam folgende Meldung:
To add a regexp an eventTypes definition is needed
Den zweiten Code hatte ich mal testweise 1:1 übernommen. Da kam die gleiche Meldung.
So eine Meldung hatte ich noch nicht. Wie kann ich das Problem lösen ?
Viele Grüße und besten Dank
André
Du musst natürlich "webbox" und "DUMMY" mit den Namen Deiner jeweiligen Geräte ersetzen.
Gruß
Dan
Wenn Du ein anderes Reading als state verwenden willst, so muss das natürlich angepasst werden:
define n_webbox_watt notify webbox:READINGNAME.* {if(ReadingsVal($NAME,"READINGNAME",1) > 0){fhem("set DUMMY on")} else {fhem("set DUMMY off")}}
Gruß
Dan
Hi,
ich habe nun hoffentlich alles in der Reihe. Er schreibt mir immer noch den eventType - Text.
So sieht es derzeit aus..
VG
André
Das wird so nicht funktionieren.
Bei Verwendung eines anderen Readings als state musst du statt "Value($NAME)" "ReadingsVal($NAME,"READINGSNAME",0) nehmen. Die 0 steht für den Default Wert.
Könntest an dieser Stelle auch "$EVTPART1" nehmen.
Gruß
Dan
Ich verwende für solche Anwendungsfälle das Modul THRESHOLD.
Sent from my iPad using Tapatalk
Hallo,
sooo..ich habe das jetzt wie im Angehangenen Bild definiert. Aber irgendwie fällt der Euro nur Centweise, heute.
Komisch....es würde doch jetzt so Sinn machen, oder ?
Viele Grüße und besten Dank
André
Naja, so fast!
Setzte bitte Deinen Code in die Code Tags anstatt Bilder hochzuladen. Das macht es für uns einfacher!
Bitte mal genau so 1:1 in die FHEM Eingabezeile.
Das sollte dann wie gewünscht funktionieren.
define n_Windturbine_Gemittelte_Leistung notify Windturbine:Gemittelte_Leistung.* {fhem("set Windanlage_in_Betrieb on") if($EVTPART1 > 0)}
Gruß
Dan
Hi Dan,
hab's gerade so gemacht wie du gesagt hast. Leider immer noch mit der gleichen "To add a regexp an eventTypes definition is needed" - Meldung.
Hier nochmal der Codeausschnitt bis jetzt:
define Windanlage_in_Betrieb dummy
attr Windanlage_in_Betrieb alias Windanlage in Betrieb
attr Windanlage_in_Betrieb devStateIcon An:10px-kreis-gruen Aus:10px-kreis-rot
attr Windanlage_in_Betrieb room Energie
attr Windanlage_in_Betrieb webCmd An:Aus
define n_Windturbine_Gemittelte_Leistung notify Windturbine:Gemittelte_Leistung.* {fhem("set Windanlage_in_Betrieb on") if($EVTPART1 > 0)}
VG
André
Zitat von: Stargazer am 08 August 2016, 20:01:03
Hi Dan,
hab's gerade so gemacht wie du gesagt hast. Leider immer noch mit der gleichen "To add a regexp an eventTypes definition is needed" - Meldung.
Hier nochmal der Codeausschnitt bis jetzt:
define Windanlage_in_Betrieb dummy
attr Windanlage_in_Betrieb alias Windanlage in Betrieb
attr Windanlage_in_Betrieb devStateIcon An:10px-kreis-gruen Aus:10px-kreis-rot
attr Windanlage_in_Betrieb room Energie
attr Windanlage_in_Betrieb webCmd An:Aus
define n_Windturbine_Gemittelte_Leistung notify Windturbine:Gemittelte_Leistung.* {fhem("set Windanlage_in_Betrieb on") if($EVTPART1 > 0)}
VG
André
Bitte mal ein list von der Windturbine:
list Windturbine
Gruß
Dan
Hi,
bitte sehr:
Internals:
DEF 192.168.178.26 http
INTERVAL 30
MITTELWERTINTERVAL 300
NAME Windturbine
NR 21
PORT 80
PROTOCOL http
STATE OK
TYPE SMAWebbox
URL 192.168.178.26
Readings:
2016-08-08 20:04:26 Aktuelle_Leistung 339
2016-08-08 19:54:51 Device1 WR33-012:2001363730
2016-08-08 19:54:51 Device2 WR33RP14:2002179742
2016-08-08 19:54:51 Device3 WR33RP14:2002179848
2016-08-08 20:04:26 Gemittelte_Leistung 352.4
2016-08-08 20:04:26 Gesamtenergie 8662.010
2016-08-08 20:04:26 Tagesenergie 4.141
Helper:
MWDATE 1470679196.12535
Attributes:
group Energie
room Energie
stateFormat Aktuell: Aktuelle_Leistung Watt, Tagesertrag: Tagesenergie kW/h
Vielen Dank für die großartige Hilfe !!
André
Hmm, das notify sollte genau so funktionieren.
Erzeugen denn die Readings Events in der Event Konsole? Wenn nicht probier mal:
attr Windturbine event-on-change-reading .*
Gruß
Dan
Kannst Du in der Deteilansicht des notify oben im "Regexp wizard" das Device und Reading auswählen?
Gruß
Dan
Hi,
komischerweise läuft es jetzt. Es steht zwar immer noch "To add a regexp an eventTypes definition is needed" oben im Wizard, aber er schaltet den Dummy.
Das "state" des Dummys ändert sich. Wenn ich ihn auf "Aus" schalte, dauert es einen Moment und er springt wieder auf "An" um.
Im Moment läuft die Anlage und das würde passen. Wenn die Anlage abschaltet, würde er doch jetzt durch das "if"-Kommando doch auch wieder ausschalten, oder ?
Ist diese o.g. Meldung denn von großer Wichtigkeit, auch wenn jetzt läuft ?
Viele Grüße und vielen Dank
André
Hi Dan,
oben im Wizard kann ich nichts auswählen. Da geht es nur weiter zum Commandref.
Viele Grüße
André
Wenn es wieder ausschalten soll dann nimm meinen zweiten Vorschlag:
define n_Windturbine_Gemittelte_Leistung notify Windturbine:Gemittelte_Leistung.* {if($EVTPART1 > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
Gruß
Dan
Zitat von: Stargazer am 08 August 2016, 20:18:16
Hi Dan,
oben im Wizard kann ich nichts auswählen. Da geht es nur weiter zum Commandref.
Viele Grüße
André
Ich meine das wie im angehängten Bild!
Gruß
Dan
EDIT: Dateianhang entfernt.
Hi Dan,
ähhm..nö. Hab ich so nicht zur Auswahl.
Hier nochmal der Code, der derzeit aktiv ist.
define Windturbine_An notify Windturbine:Gemittelte_Leistung.* {fhem("set Windanlage_in_Betrieb on") if($EVTPART1 > 0)}
define Windturbine_Aus notify Windturbine:Gemittelte_Leistung.* {if($EVTPART1 > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
Ich muss mal gucken wie das wird, da das reading der Gemittelten_Leistung nicht ganz 0 wird, sonder bei 0,01 stehen bleibt. Aber das kann man ja anpassen.
VG
André
Du brauchst nur das zweite notify, das erledigt beide Zustände.
Also am Besten:
delete Windturbine_An
rename Windturbine_Aus Windturbine_Gemittelte_Leistung
in die FHEM Eingabezeile.
Gruß
Dan
EDIT: Wenn es dann jetzt wie gewünscht funktioniert kann Dir die Meldung auch egal sein, aber eigentlich (wenn das Device Events erzeugt) sollten die auch im "Regexp wizard" auswählbar sein.
Ach ja, und falls die gemittelte Leistung nie auf 0 geht, so kannst Du in dem notify die "> 0" einfach anpassen in einen Dir besser passenden Wert.
Gruß
Dan
Hi Dan,
ich danke dir recht Herzlich für deine Hilfe !!
Wenn man so etwas einmal gemacht hat, sacken lässt, versteht man es auch und kann es in Zukunft anwenden.
Vielen Dank nochmal und viele Grüße
André
Ich hoffe es funktioniert nun wie gewünscht, das ist das Wichtigste.
Kleiner Tipp noch:
Ich bevorzuge folgende Schreibweise für Gerätenamen und kann es anderen nur ähnlich empfehlen:
n_Windturbine_Gemittelte_Leistung
Also das ist z.B. ein notify, beginnend mit "n_",
dann schreibe ich immer den Device Namen, "n_Windturbine",
und dann entweder das Reading auf welches das notify reagiert oder die Funktion die dahinter steht, n_Windturbine_Gemittelte_Leistung.
Somit weiß man immer gleich am Gerätenamen was es ist und was es voraussichtlich macht.
Hat für manche Regex auch Vorteile wenn Du mehrere Devices mit einem Regex ansprechen willst. Stell Dir vor Du hast mehrere Windturbinen und willst die in einem Regex erwischen. Dann würde der Regex eben auch das notify mitnehmen weil es am Anfang genau so heißt wie Deine Windturbinen. Um das relativ einfach zu vermeiden stelle ich das "n_" voran. ;)
Gruß
Dan
Hi Dan,
Danke für dein Tipp. In der Tat...Anfangs geht das ja alles noch..aber je mehr das wird...da gebe ich dir recht.
Viele Grüße und Danke nochmal..
André
Hallo zusammen,
vorhin gab es einmal richtig Wind. FHEM hat es perfekt gemeistert. Alles lief mit dem Dummy, wie es sollte.
Nun wollte ich das ganze noch um eine Sturmabschaltung
erweitern. Unsere Wetterstation wird über das HTTPMOD Modul ausgelesen. Leider steht da dann folgendes komplett:
2,5 m/s from 241° (WSW)
Er zeigt mir im Notify das reading korrekt an. Nur möchte ich den Grenzwert bei den m/s einstellen. Ich habe Dan seine Befehlszeile genommen und anstatt der 0 einfach mal eine 1 eingetragen. Auch 1,0 oder 1 m/s brachte nichts. Ich weiß auch nicht, ob das Komma störend wirkt.
Viele Grüße und besten Dank
André
Das Komma wird störend sein! In Perl (und auch anderen Sprachen) ist der Punkt das Komma und auch nur damit lässt sich rechnen bzw. wird das als Float Zahl erkannt.
Man kann das aber umformatieren wenn Du es benötigst.
my $reading = ReadingsVal("Windturbine","Gemittelte_Leistung","7,5");
$reading =~ s/,/./;
EDIT:
Oder wie oben mit $EVTPART:
my $reading = $EVTPART1;
$reading =~ s/,/./;
In $EVTPART1 steht wirklich nur die Zahl (z.B. 2,5).
In ReadingsVal steckt das komplette Reading, also "2,5 m/s from 241° (WSW)".
Das ersetzt , durch .
Gruß
Dan
Hi Dan,
erklär mich für doof, aber wo soll ich das ersetzen ?
{if($EVTPART1 > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
wäre das dann...
{if(my $reading > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
?
Aber wo füge ich die zweite Zeile ein ($reading =~ s/,/./;) ?
Viele Grüße und besten Dank
André
Zitat von: Stargazer am 09 August 2016, 16:45:18
Hi Dan,
erklär mich für doof, aber wo soll ich das ersetzen ?
{if($EVTPART1 > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
wäre das dann...
{if(my $reading > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
?
Aber wo füge ich die zweite Zeile ein ($reading =~ s/,/./;) ?
Viele Grüße und besten Dank
André
Dich erklärt keiner für doof, jeder hat mal klein angefangen...
{my $reading = $EVTPART1; $reading =~ s/,/./; if($reading > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
Gruß
Dan
EDIT: Eventuell muss man $reading noch in eine Zahl umwandeln (ich denke das ist sonst ein String), dann etwa so:
{my $reading = $EVTPART1; $reading =~ s/,/./; $reading = $reading*1; if($reading > 0){fhem("set Windanlage_in_Betrieb on")} else {fhem("set Windanlage_in_Betrieb off")}}
(mit sprintf könnte man noch anders runden)
Hi Dan,
vielen Dank für deine Unterstützung. Ich habe den Code eingetragen.
Wie das Leben so will, hab ich derzeit keinen Kontakt vom Windmesser. Vorhin hatte er den kurz. Kommt selten vor, aber wenn, dann genau jetzt. Wird wohl wiederkommen.
Ich berichte, wenn es geklappt hat.
Viele Grüße
André
Hi,
ich hatte den zweiten Code von dir eingeben. Nun ist der Kontakt zum Windmesser weider aufgebaut.
Grenzwert liegt bei 1.0 und wir haben 2,2 m/s. Doch der dummy "Sturmwarnung" geht nicht an (hatte ich natürlich im DEF dahin unbenannt. Auch ein Grenzwert von 1,0 brachte nichts...
Code sieht derzeit so aus:
define Sturmwarnung dummy
attr Sturmwarnung devStateIcon on:weather_wind off:vent_ventilation_level_0
attr Sturmwarnung room Wetter
define Sturmwarnung_Antaris notify Wetterstation:Windgeschwindigkeit.* {my $reading = $EVTPART1;; $reading =~ s/,/./;; $reading = $reading*1;; if($reading > 1,0){fhem("set Sturmwarnung on")} else {fhem("set Sturmwarnung off")}}
attr Sturmwarnung_Antaris userattr interval
attr Sturmwarnung_Antaris interval 120
attr Sturmwarnung_Antaris room Wetter
Viele Grüße
André
Zitat von: Stargazer am 09 August 2016, 19:45:07
Hi,
ich hatte den zweiten Code von dir eingeben. Nun ist der Kontakt zum Windmesser weider aufgebaut.
Grenzwert liegt bei 1.0 und wir haben 2,2 m/s. Doch der dummy "Sturmwarnung" geht nicht an (hatte ich natürlich im DEF dahin unbenannt. Auch ein Grenzwert von 1,0 brachte nichts...
Code sieht derzeit so aus:
define Sturmwarnung dummy
attr Sturmwarnung devStateIcon on:weather_wind off:vent_ventilation_level_0
attr Sturmwarnung room Wetter
define Sturmwarnung_Antaris notify Wetterstation:Windgeschwindigkeit.* {my $reading = $EVTPART1;; $reading =~ s/,/./;; $reading = $reading*1;; if($reading > 1,0){fhem("set Sturmwarnung on")} else {fhem("set Sturmwarnung off")}}
attr Sturmwarnung_Antaris userattr interval
attr Sturmwarnung_Antaris interval 120
attr Sturmwarnung_Antaris room Wetter
Viele Grüße
André
Wie gesagt, Rechnen (und auch Vergleichen) geht nur mit Punkt statt Komma, und deswegen ja auch die Substitution.
Also:
define Sturmwarnung_Antaris notify Wetterstation:Windgeschwindigkeit.* {my $reading = $EVTPART1;; $reading =~ s/,/./;; $reading = $reading*1;; if($reading > 1.0){fhem("set Sturmwarnung on")} else {fhem("set Sturmwarnung off")}}
Gruß
Dan
Hi Dan,
das mit den 1.0 hatte ich als erstes versucht. Funktionierte jedoch nicht. Da hab ich es einfach nochmal mit 1,0 versucht.
Leuchtet mir jetzt aber auch ein, dass das nicht gehen konnte.
Habe das jetzt wieder auf 1.0 geändert.
Doch leider springt der Dummy nicht auf on, obwohl 1,6 m/s.. .
Ist komisch, da es doch so mit der Zeile plausibel sein sollte.
Viele Grüße
André
Dann gib doch zwischendrin mal die Variable im Log oder Sonstwo aus um zu sehen was wirklich drin steht. Am Besten einmal vor der Substitution und einmal danach. Ich kann hier auch nur im Dunkeln tappen...
Und trigger einfach mal das Reading manuell damit Du nicht immer warten musst bis sich das Reading ändert.
Gruß
Dan
Hi Dan,
ich kann leider den Wert der Windgeschwindigkeit nicht manuell ändern und dadurch das Notify so checken. Ich arbeite da mit dem Schaltwert des Notify, wo ich das Define anklicke und anschließend wieder übernehme. Hab ein LOG angelegt und mit Sturmwarnung_Antaris mit verbose 5 da reinschreiben lassen. Zuerst mit dem alten Befehlssatz, dann mit dem neuen. Heraus kam nur folgendes:
2016-08-09_21:40:08 Sturmwarnung_Antaris active
2016-08-09_21:55:37 Sturmwarnung_Antaris active
Ist klar, da er ja das DEF neu einliest.
Man o man....da kann man bei mir von Schwarzen Wissenslöchern aber gar nicht erst reden... :o ??? .
Viele Grüße
André
Zitat von: Stargazer am 09 August 2016, 22:02:26
Hi Dan,
ich kann leider den Wert der Windgeschwindigkeit nicht manuell ändern und dadurch das Notify so checken. Ich arbeite da mit dem Schaltwert des Notify, wo ich das Define anklicke und anschließend wieder übernehme. Hab ein LOG angelegt und mit Sturmwarnung_Antaris mit verbose 5 da reinschreiben lassen. Zuerst mit dem alten Befehlssatz, dann mit dem neuen. Heraus kam nur folgendes:
2016-08-09_21:40:08 Sturmwarnung_Antaris active
2016-08-09_21:55:37 Sturmwarnung_Antaris active
Ist klar, da er ja das DEF neu einliest.
Man o man....da kann man bei mir von Schwarzen Wissenslöchern aber gar nicht erst reden... :o ??? .
Viele Grüße
André
Klar kannst Du das Reading manuell ändern:
setreading Windturbine Gemittelte_Leistung WERT
Wobei Windturbine, Gemittelte_Leistung und WERT durch entsprechende Werte zu ersetzen sind.
Schau doch einfach mal ins Wiki, da gibt es ein PDF wo das alles erklärt ist. 8)
Gruß
Dan
Hi Dan,
ich habe den setreading - Befehl bei der HTTPMOD Abfrage der Wetterstation versucht auszuführen, was aber nicht gefruchtet hat.
Langsam denke ich, dass der Schuh in diesem Fall (noch) zu groß für mich ist. Da könnte ich mich über mich selber gerade ärgern.
In meinem Fall wollte ich über den ermittelten Grenzwert der Windgeschwindigkeit, die Anlage aus dem Wind schalten. Das macht dann eine Bremse die über diese Befehlssequenz angesteuert würde.
Das wäre bei schwerem Sturm bis Orkan der Fall, da sonst die 22m² Rotorfläche auf einem 24m Masten doch zu Unruhig würden und dadurch nicht mehr viel Energie kommt. Es würde zwar nix passieren, aber man könnte da das Material etwas schonen.
Das nur so am Rande.
Vielleicht sollte ich das irgendwie Anhand eines Klartext-readings eines Devices versuchen. Muss da nur noch überlegen, wie ?
Viele Grüße und vielen Dank...
André
Ich kann Deine Aufregung und Ideenreichtum total verstehen, bei mir sprundeln auch fast täglich wieder neue Ideen ein.
ABER: Mache Dich ganz dringend mit den Basics von FHEM und Perl vertraut, umso mehr Freude hast Du auch selber daran.
Gruß
Dan
Hi Dan,
nochmals ein GROßES DANKESCHÖN an dich, dass du mir soweit schonmal geholfen hast !!
Ich habe mir die pdf jetzt mal heruntergeladen. Da werde ich dann mal schmöckern... ;)
Viele Grüße
André
Kein Problem, aber das PDF ist wirklich Pflicht mindestens 1x gelesen zu haben. Du lernst eigentlich fast alles über FHEM darin, und im schlimmsten Fall weißt Du nur dass Du es da schon 1x gelesen hast und schaust wieder nach. :o
Gruß
Dan
Hallo zusammen,
ich wollte noch kurz bekanntgeben.
Mit dem Code
Windgeschwindigkeit { my $val = (ReadingsVal("$name", "Windgeschwindigkeit", 0)); $val =~ s/,/\./g; return $val;}
konnte ich den Zahlenwert erfolgreich Formatieren.
Ich habe jetzt z.B. 4.3 m/s from 224°
vorliegen. Ich habe dann den Schaltwert in folgendes Notify geschrieben :
Wetterstation:Windgeschwindigkeit
.* {if($EVTPART1 > 1.0){fhem("set Antaris_Test on")} else {fhem("set Antaris_Test off")}}
Doch das funktioniert noch nicht. Werde mich da noch auf die Fehlersuche machen.
Viele Grüße
André
Zitat von: Stargazer am 10 August 2016, 13:44:07
Windgeschwindigkeit { my $val = (ReadingsVal("$name", "Windgeschwindigkeit", 0)); $val =~ s/,/\./g; return $val;}
Wie und wo lässt Du das ausführen?
Zitat von: Stargazer am 10 August 2016, 13:44:07
Wetterstation:Windgeschwindigkeit
.* {if($EVTPART1 > 1.0){fhem("set Antaris_Test on")} else {fhem("set Antaris_Test off")}}
Doch das funktioniert noch nicht. Werde mich da noch auf die Fehlersuche machen.
Hast Du mal geschaut was denn wirklich in der Variablen $EVTPART1 im notify ankommt?
Gruß
Dan
Grüß dich, Dan
Ich führe das als userReading unter HTTPMOD aus. Da, wo auch die Daten der Station auflaufen. So habe ich die Formatierung gleich in den Readings und kann damit besser arbeiten, so der Gedanke. Wenn man die Daten nochmal wo anders zur Verarbeitung braucht, stimmt das Format wenigstens.
ZitatHast Du mal geschaut was denn wirklich in der Variablen $EVTPART1 im notify ankommt?
Erwischt ! An dem Thema scheitere ich noch. Habe keine Ahnung wie das geht.
Viele Grüße
André
Wie man etwas loggt ist auch bei den FHEM Basics erklärt.
z.B. so:
Wetterstation:Windgeschwindigkeit.* {Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: $EVTPART1"; if($EVTPART1 > 1.0){fhem("set Antaris_Test on")} else {fhem("set Antaris_Test off")}}
Und beim Auslösen ins Log schauen (im Event monitor + Häkchen Log setzen) und nach "Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit:" suchen. Dahinter sollte dann der Wert von $EVTPART1 stehen.
Gruß
Dan
Hi Dan,
ich hatte deinen Code eingefügt und auf einmal funktionierte die Schaltung. Komischerweise.
Setze ich die Windgeschwindigkeit per setreading, springt der dummy sofort an. Ändere ich den Grenzwert in der Definition, so schaltet er auch was er soll.
Nun ist nur noch das Problem, dass er mir das Notify nicht selbständig zu aktualisieren scheint. Die Wetterdaten kommen derzeit alle 10 Sekunden frisch rein. Ist das wohl zu schnell ? Bei der Windanlage geht es mit 300 Sekunden Tip-Top... .
Viele Grüße
André
Zitat von: Stargazer am 10 August 2016, 15:22:46
Hi Dan,
ich hatte deinen Code eingefügt und auf einmal funktionierte die Schaltung. Komischerweise.
Setze ich die Windgeschwindigkeit per setreading, springt der dummy sofort an. Ändere ich den Grenzwert in der Definition, so schaltet er auch was er soll.
Nun ist nur noch das Problem, dass er mir das Notify nicht selbständig zu aktualisieren scheint. Die Wetterdaten kommen derzeit alle 10 Sekunden frisch rein. Ist das wohl zu schnell ? Bei der Windanlage geht es mit 300 Sekunden Tip-Top... .
Viele Grüße
André
"zu schnell" gibt es eigentlich nicht. Schon gar nicht bei 10 Sekunden.
Nun ist nur noch das Problem, dass er mir das Notify nicht selbständig zu aktualisieren scheint.
Was meinst du konkret damit?
Gruß
Dan
Hi Dan,
wenn ich das Fenster mit Notify offen lasse, liest er das reading nicht neu ein. Dann müsste der Zeitstempel ja rot werden. Das tut er nicht. Erst wenn ich etwas ändere, dann steht da der aktuelle Stempel. Auch der Windwert ändert sich dadurch nicht. Irgendwie komisch. Bei der Windanlage geht es ja.
VG
André
Zitat von: Stargazer am 10 August 2016, 15:56:37
Hi Dan,
wenn ich das Fenster mit Notify offen lasse, liest er das reading nicht neu ein. Dann müsste der Zeitstempel ja rot werden. Das tut er nicht. Erst wenn ich etwas ändere, dann steht da der aktuelle Stempel. Auch der Windwert ändert sich dadurch nicht. Irgendwie komisch. Bei der Windanlage geht es ja.
VG
André
Fenster??? Wo kommt jetzt auf einmal ein Fenster her?
Irgendwie fehlt mir hier der Bezug zum Rest des Themas!
Wenn Du schon im Thema springst solltest Du auch wieder genau erklären was Du vor hast, wie Du bereits rangegangen bist usw...
Gruß
Dan
Hi Dan,
Sorry...ich meinte mit Fenster das Browserfenster.
Wenn ich da das Notify offen hab, aktualisiert es sich nicht.
Also da, wo die Intervalle und Readings stehen.
VG
André
Verstehe ich immer noch nicht, sorry!
Was hat ein offenes Browserfenster damit zu tun ob in FHEM ein Event ausgelöst wird oder nicht?
Gruß
Dan
Hi,
im Attachment habe ich mal das Browserfenster angehangen, was ich meinte.
Das "state" vom Notify ändert sich halt nicht mehr. Es ist bei 15.11 Uhr stehen geblieben, obwohl die Wetterstation weiter Daten sendet.
Das ist für mich noch nicht Verständlich, warum sich das nicht mehr aktualisiert.
VG
André
Zitat von: Stargazer am 10 August 2016, 16:50:16
Hi,
im Attachment habe ich mal das Browserfenster angehangen, was ich meinte.
Das "state" vom Notify ändert sich halt nicht mehr. Es ist bei 15.11 Uhr stehen geblieben, obwohl die Wetterstation weiter Daten sendet.
Das ist für mich noch nicht Verständlich, warum sich das nicht mehr aktualisiert.
VG
André
Ach das meinst Du!!!! 8)
Da ist normal! Während Du in den Details des notify stehst siehst Du keine Veränderung des state. Dort scheint nicht per Longpoll aktualisiert zu werden (Zeitstempel wird nie rot).
Wenn Du im Browser einfach einen Reload der Seite machst, so sollte sich der Zeitstempel aber verändert haben wenn das notify wirklich getriggert wurde.
Gruß
Dan
Hi,
der Wert der Windgeschwindigkeit ändert sich beim aktualisieren der Seite. Nur schaltet der Dummy nicht. Obwohl ich unter Grenzwert bin.
VG
André
Hattest Du die Variable mal geloggt? Steht da wirklich das drin was Du erwartest?
Gruß
Dan
Hi Dan,
im Event monitor steht dann folgendes:
2016.08.10 18:19:21 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: 6.0
2016.08.10 18:19:21 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: 6.0
2016-08-10 18:19:21 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 6.0
2016-08-10 18:19:21 HTTPMOD Wetterstation Windgeschwindigkeit: 6.0
2016-08-10 18:19:21 HTTPMOD Wetterstation Windgeschwindigkeit: 6.0
Mehr steht da leider nicht. Hätte mehr erwartet... .
Auf jeden Fall schaltet er den Dummy, wenn man es manuell triggert.
ABER: Wenn der setreading nach 60 Sekunden wieder auf den normalen gemessenen Wert wechselt, bleibt der Dummy auf "on".
VG und besten Dank
André
Was hast Du mehr erwartet?
Es ging doch genau darum an den einzelnen Wert im Reading zu kommen und zu sehen ob wirklich , durch . ersetzt wird.
Poste bitte nochmal Dein komplettes notify, so wie es jetzt angelegt ist.
Gruß
Dan
EDIT: Stimmt denn die 6.0 mit dem über setreading gesetzen Wert überein? Ich hoffe Du hast bei setreading 6,0 angegeben.
Hi,
okay....jetzt mal mit setreading 6,0. Das ergab folgendes:
2016.08.10 19:16:46 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: 6,0
2016.08.10 19:16:46 1 : PERL WARNING: Argument "6,0" isn't numeric in numeric gt (>) at (eval 1775) line 1.
2016.08.10 19:16:46 3 : eval: my $TYPE='HTTPMOD';my $EVTPART1='6,0';my $EVTPART0='Windgeschwindigkeit:';my $NAME='Wetterstation';my $SELF='Sturmwarnung_Test';my $EVENT='Windgeschwindigkeit: 6,0';{Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: $EVTPART1"; if($EVTPART1 > 4.0){fhem("set Antaris_SturmStopp on")} else {fhem("set Antaris_SturmStopp off")}}
2016.08.10 19:16:46 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: 6.0
2016-08-10 19:16:46 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 6.0
2016-08-10 19:16:46 HTTPMOD Wetterstation Windgeschwindigkeit: 6,0
2016-08-10 19:16:46 HTTPMOD Wetterstation Windgeschwindigkeit: 6.0
Das Notify sieht derzeit so aus :
define Sturmwarnung_Test notify Wetterstation:Windgeschwindigkeit.* {Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit: $EVTPART1";; if($EVTPART1 > 4.0){fhem("set Antaris_SturmStopp on")} else {fhem("set Antaris_SturmStopp off")}}
Viele Grüße
André
Das kann wieder nicht funktionieren, steht ja bereits im Fehlertext woran es liegt!
Wo ist denn im notify die Substitution geblieben?
define Sturmwarnung_Test notify Wetterstation:Windgeschwindigkeit.* {Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: $EVTPART1";; my $reading = $EVTPART1;; $reading =~ s/,/./g;; $reading = $reading*1;; Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: $reading";; if($reading > 4.0){fhem("set Antaris_SturmStopp on")} else {fhem("set Antaris_SturmStopp off")}}
Gruß
Dan
P.S. Habe Dir eine Logausgabe vor und nach der Substitution eingebaut.
Hi Dan,
ich dachte, die Substitution hätte ich mir sparen können, da ich es ja schon vorher, sprich im HTTPMOD, umformatiere. Dort wird es ja auch mit . statt , angezeigt.
Wieder ein Denkfehler... ??? .
Hier der Mitschnitt von deinem Code:
2016.08.10 19:41:32 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: 6,0
2016.08.10 19:41:32 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: 6
2016-08-10 19:41:32 dummy Antaris_SturmStopp on
2016.08.10 19:41:32 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: 6.0
2016.08.10 19:41:32 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: 6
2016-08-10 19:41:32 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 6.0
2016-08-10 19:41:32 HTTPMOD Wetterstation Windgeschwindigkeit: 6,0
2016-08-10 19:41:32 HTTPMOD Wetterstation Windgeschwindigkeit: 6.0
Viele Grüße und Danke
André
Was Du vorher schon alles machst, das weiß ich ja nicht. Mir war nur aufgefallen das die von mir vorgeschlagene Substitution nicht im notify war.
Lass doch mal im HTTPMOD die Umformatiererei sein und prüfe ob dann das notify wie von mir vorgeschlagen funktioniert.
Es macht immer nur Sinn an einer Stelle zu schrauben.....
Offensichtlich wird das notify bei Dir doppelt getriggert, oder warum stehen zur selben Zeit unterschiedliche "vor Subst" da?
Gruß
Dan
Alles klar,
habe die Formatierung im HTTPMOD wieder aufgehoben und jetzt folgendes bei der setreading eingabe von 6,0:
2016.08.10 19:54:11 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: 6,0
2016.08.10 19:54:11 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: 6
2016-08-10 19:54:11 dummy Antaris_SturmStopp on
2016-08-10 19:54:11 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 6,0
2016-08-10 19:54:11 HTTPMOD Wetterstation Windgeschwindigkeit: 6,0
Ich wollte nur halt den Wert schon etwas vereinfachen, im MOD. Darum hatte ich da auf dem Weg zur Lösung des Problems den Wert formatiert.
Nichts für ungut.. .
Viele Grüße und vielen Dank
André
Setze doch mal 6,1 ob dann 6.1 rauskommt.
Klappt es denn dann jetzt mit dem Schalten wenn Du den Wert kleiner 4 setzt?
Gruß
Dan
Hi,
das sieht glaub ich soweit ganz gut aus.
2016.08.10 20:02:33 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: 6,1
2016.08.10 20:02:33 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: 6.1
2016-08-10 20:02:33 dummy Antaris_SturmStopp on
2016-08-10 20:02:33 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 6,1
2016-08-10 20:02:33 HTTPMOD Wetterstation Windgeschwindigkeit: 6,1
Mit dem schalten kleiner 4 läuft sehr gut. Siehe hier:
2016.08.10 20:00:20 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: 3,5
2016.08.10 20:00:20 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: 3.5
2016-08-10 20:00:20 dummy Antaris_SturmStopp off
2016-08-10 20:00:20 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 3,5
2016-08-10 20:00:20 HTTPMOD Wetterstation Windgeschwindigkeit: 3,5
Danke dir..
Na bitte, dann bin ich ja froh dass es nun endlich wie gewünscht klappt. Hat ja "nur" 4 Seiten lang gedauert... ;)
Zitat von: DeeSPe am 10 August 2016, 19:27:22
define Sturmwarnung_Test notify Wetterstation:Windgeschwindigkeit.* {Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: $EVTPART1";; my $reading = $EVTPART1;; $reading =~ s/,/./g;; $reading = $reading*1;; Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: $reading";; if($reading > 4.0){fhem("set Antaris_SturmStopp on")} else {fhem("set Antaris_SturmStopp off")}}
Setze aber am Besten noch einen Filter beim set, damit nicht immer wieder angeschaltet wird obwohl schon an ist bzw. umgekehrt.
define Sturmwarnung_Test notify Wetterstation:Windgeschwindigkeit.* {my $reading = $EVTPART1;; $reading =~ s/,/./g;; $reading = $reading*1;; if($reading > 4.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
Eventuell kannst Du an der Stelle auch mal testen ob "$reading = $reading*1" wirklich nötig ist oder ob es vorher schon als Zahl (float) erkannt wird. (Das würde mich echt mal interessieren)
Gruß
Dan
Hi,
was nur komisch ist, da er ja eigentlich reagieren müsste, ist, dass wenn zum Beispiel der Windmesser 0,7 m/s anzeigt, ich den Schaltwert auf 0.2 setze, der dummy nicht einschaltet. Auch nach einer Weile nicht.
Ich hab dir mal ein Bild mitgeschickt, da kann man das gut sehen.
Das ist das, was ich nicht so ganz kapiere...
VG
André
Zitat von: Stargazer am 10 August 2016, 20:14:49
Hi,
was nur komisch ist, da er ja eigentlich reagieren müsste, ist, dass wenn zum Beispiel der Windmesser 0,7 m/s anzeigt, ich den Schaltwert auf 0.2 setze, der dummy nicht einschaltet. Auch nach einer Weile nicht.
Ich hab dir mal ein Bild mitgeschickt, da kann man das gut sehen.
Das ist das, was ich nicht so ganz kapiere...
VG
André
Er schaltet ja auch erst bei >0.2 an.
Wenn er ab 0.2 schalten soll dann >=0.2
Okay,
ist geändert, auf >=0.2.
Da schaltet er auch nicht. Siehe Bild.
VG
André
Kannst Du bitte mal direkt nach dem setreading ein list vom Device Wetterstation machen und posten?
Gruß
Dan
Soo...
da isses. Sieht nicht nach einer Umstellung des Wertes aus. Obwohl er in den readings der Station die 6,0 bei Wind eingetragen hatte.
Internals:
BUSY 0
DEF http://192.168.178.28/index.html 60
Interval 60
LASTSEND 1470855123.8944
MainURL http://192.168.178.28/index.html
ModuleVersion 3.3.0 - 19.6.2016
NAME Wetterstation
NR 67
STATE 6,0
TRIGGERTIME 1470855183.89391
TRIGGERTIME_FMT 2016-08-10 20:53:03
TYPE HTTPMOD
addr http://192.168.178.28:80
buf HTTP/1.1 200 OK
Date: Wed, 10 Aug 2016 18:52:03 GMT
Server: Apache/2.4.10 (Raspbian)
Last-Modified: Wed, 10 Aug 2016 18:50:34 GMT
ETag: "334a-539bc1fdc59ae"
Accept-Ranges: bytes
Content-Length: 13130
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2005/10/profile">
<title>Löhne, Germany Current Weather Conditions</title>
<link rel="stylesheet" type="text/css" href="weewx.css"/>
<link rel="icon" type="image/png" href="favicon.ico" />
<script type="text/javascript">
function openURL(urlname)
{
window.location=urlname;
}
function openNoaaFile(date)
{
var url = "NOAA/NOAA-";
url = url + date;
url = url + ".txt";
window.location=url;
}
</script>
</head>
<body>
<div id="container">
<div id="masthead">
<h1>Löhne, Germany</h1>
<h2>Current Weather Conditions</h2>
<h2>10.08.2016 20:50:00</h2>
</div>
<div id="stats_group">
<div class="stats">
<div class="stats_header">
Current Conditions
</div>
<table>
<tbody>
<tr>
<td class="stats_label">Outside Temperature</td>
<td class="stats_data">13,6°C</td>
</tr>
<tr>
<td class="stats_label">Wind Chill</td>
<td class="stats_data">11,2°C</td>
</tr>
<tr>
<td class="stats_label">Heat Index</td>
<td class="stats_data">13,6°C</td>
</tr>
<tr>
<td class="stats_label">Dewpoint</td>
<td class="stats_data">9,3°C</td>
</tr>
<tr>
<td class="stats_label">Humidity</td>
<td class="stats_data">75%</td>
</tr>
<tr>
<td class="stats_label">Barometer</td>
<td class="stats_data">1020,7 mbar</td>
</tr>
<tr>
<td class="stats_label">Barometer Trend (3 hours)</td>
<td class="stats_data">0,1 mbar</td>
</tr>
<tr>
<td class="stats_label">Wind</td>
<td class="stats_data">0,9 m/s from 339° (NNW)</td>
</tr>
<tr>
<td class="stats_label">Rain Rate</td>
<td class="stats_data">0,0 mm/hr</td>
</tr>
<tr>
<td class="stats_label">Inside Temperature</td>
<td class="stats_data">20,6°C</td>
</tr>
</tbody>
</table>
</div>
<p> </p>
<div class="stats">
<div class="stats_header">
Since Midnight
</div>
<table>
<tbody>
<tr>
<td class="stats_label">
High Temperature<br/>
Low Temperature
</td>
<td class="stats_data">
18,3°C at 15:15:00<br/>
12,2°C at 07:23:06
</td>
</tr>
<tr>
<td class="stats_label">
High Heat Index<br/>
Low Wind Chill
</td>
<td class="stats_data">
18,3°C at 15:15:00<br/>
9,0°C at 07:13:11
</td>
</tr>
<tr>
<td class="stats_label">
High Humidity<br/>
Low Humidity
</td>
<td class="stats_data">
83% at 08:13:01<br/>
46% at 14:43:06
</td>
</tr>
<tr>
<td class="stats_label">
High Dewpoint<br/>
Low Dewpoint
</td>
<td class="stats_data">
10,7°C at 10:13:03<br/>
5,6°C at 13:17:09
</td>
</tr>
<tr>
<td class="stats_label">
High Barometer<br/>
Low Barometer
</td>
<td class="stats_data">
1020,9 mbar at 18:30:00<br/>
1017,8 mbar at 06:03:08
</td>
</tr>
<tr>
<td class="stats_label">Today's Rain</td>
<td class="stats_data">0,7 mm</td>
</tr>
<tr>
<td class="stats_label">High Rain Rate</td>
<td class="stats_data">2,6 mm/hr at 07:15:00</td>
</tr>
<tr>
<td class="stats_label">
High Wind
</td>
<td class="stats_data">
9,6 m/s from 180° at 16:27:11
</td>
</tr>
<tr>
<td class="stats_label">
Average Wind
</td>
<td class="stats_data">
1,8 m/s
</td>
</tr>
<tr>
<td class="stats_label">
RMS Wind
</td>
<td class="stats_data">
2,2 m/s
</td>
</tr>
<tr>
<td class="stats_label">
Vector Average Speed<br/>
Vector Average Direction
</td>
<td class="stats_data">
1,5 m/s<br/>
278°
</td>
</tr>
<tr>
<td class="stats_label">
High Inside Temperature<br/>
Low Inside Temperature
</td>
<td class="stats_data">
21,9°C at 16:25:07<br/>
19,8°C at 08:33:02
</td>
</tr>
</tbody>
</table>
</div> <!--End class "stats" -->
<p> </p>
</div> <!--End class "stats_group" -->
<div id="content">
<div id="about">
<div class="header">
About this weather station:
</div>
<table>
<caption class="caption">Location</caption>
<tr>
<td class="label">Latitude:</td>
<td class="data">52° 07.80' N</td>
</tr>
<tr>
<td class="label">Longitude:</td>
<td class="data">008° 27.00' E</td>
</tr>
<tr>
<td class="label">Altitude:</td>
<td class="data">72 meters</td>
</tr>
</table>
<p>
This station uses a TFA Meteotime Duo, controlled by
<a href="http://www.weewx.com">'weewx'</a>, an experimental
weather software system written in Python. Weewx
was designed to be simple, fast, and easy to understand by
leveraging modern software concepts.
</p>
<p><a href="RSS/weewx_rss.xml">RSS feed</a></p>
<p><a href="mobile.html">Mobile formatted</a></p>
<p><a href="smartphone/index.html">Smartphone formatted</a></p>
<p>Weewx uptime: 10 days, 9 hours, 49 minutes<br/>
Server uptime: 11 days, 23 hours, 31 minutes<br/>
weewx v3.4.0</p>
</div> <!-- End id "about" -->
<div id="almanac">
<div class="header">
Today's Almanac
</div>
<div class="celestial_group">
<div class="celestial_body">
<table>
<caption class="caption">Sun</caption>
<tr>
<td class="label">Start civil twilight:</td>
<td class="data">05:21:45</td>
</tr>
<tr>
<td class="label">Sunrise:</td>
<td class="data">06:01:48</td>
</tr>
<tr>
<td class="label">Transit:</td>
<td class="data">13:31:28</td>
</tr>
<tr>
<td class="label">Sunset:</td>
<td class="data">21:00:02</td>
</tr>
<tr>
<td class="label">End civil twilight:</td>
<td class="data">21:39:50</td>
</tr>
<tr>
<td class="label">Azimuth:</td>
<td class="data">294.7°</td>
</tr>
<tr>
<td class="label">Altitude:</td>
<td class="data">0.9°</td>
</tr>
<tr>
<td class="label">Right ascension:</td>
<td class="data">141.0°</td>
</tr>
<tr>
<td class="label">Declination:</td>
<td class="data">15.3°</td>
</tr>
<tr>
<td class="label">Equinox:</td>
<td class="data">22.09.2016 16:21:12</td>
</tr>
<tr>
<td class="label">Solstice:</td>
<td class="data">21.12.2016 11:44:02</td>
</tr>
</table>
</div> <!-- end class "celestial_body" -->
<div class="celestial_body">
<table>
<caption class="caption">Moon</caption>
<tr>
<td class="label">Rise:</td>
<td class="data">14:09:53</td>
</tr>
<tr>
<td class="label">Transit:</td>
<td class="data">19:15:18</td>
</tr>
<tr>
<td class="label">Set:</td>
<td class="data">00:13:58</td>
</tr>
<tr>
<td class="label">Azimuth:</td>
<td class="data">204.2°</td>
</tr>
<tr>
<td class="label">Altitude:</td>
<td class="data">21.3°</td>
</tr>
<tr>
<td class="label">Right ascension:</td>
<td class="data">227.4°</td>
</tr>
<tr>
<td class="label">Declination:</td>
<td class="data">-13.6°</td>
</tr>
<tr>
<td class="label">Full moon:</td>
<td class="data">18.08.2016 11:26:33</td>
</tr>
<tr>
<td class="label">New moon:</td>
<td class="data">01.09.2016 11:03:05</td>
</tr>
<tr>
<td class="label">Phase:</td>
<td class="data">First quarter<br/>(50% full)</td>
</tr>
</table>
</div> <!-- end class "celestial_body" -->
</div> <!-- end class "celestial_group" -->
</div> <!-- end id "almanac" -->
<div id="plots">
<img src="daytempdew.png" alt="temperatures" />
<img src="daytempchill.png" alt="heatchill" />
<img src="dayrain.png" alt="rain" />
<img src="daywind.png" alt="wind" />
<img src="daybarometer.png" alt="barometer"/>
<img src="daywinddir.png" alt="Hi Wind" />
<img src="dayinside.png" alt="Inside" />
<img src="daywindvec.png" alt="Wind Vector" />
</div> <!-- End id "plots" -->
</div> <!-- End id "content" -->
<div id="navbar">
<input type="button" value=" Current " onclick="openURL('index.html')" />
<input type="button" value=" Week " onclick="openURL('week.html')" />
<input type="button" value=" Month " onclick="openURL('month.html')" />
<input type="button" value=" Year " onclick="openURL('year.html')" />
<p>Monthly summary:
<select NAME=noaaselect onchange="openNoaaFile(value)">
<option value="2016-01">2016-01</option>
<option value="2016-02">2016-02</option>
<option value="2016-03">2016-03</option>
<option value="2016-04">2016-04</option>
<option value="2016-05">2016-05</option>
<option value="2016-06">2016-06</option>
<option value="2016-07">2016-07</option>
<option value="2016-08">2016-08</option>
<option selected>-Select month-</option>
</select>
<br/>
Yearly summary:
<select NAME=noaaselect onchange="openNoaaFile(value)">
<option value="2016">2016</option>
<option selected>-Select year-</option>
</select>
</p>
</div>
</div>
</body>
</html>
code 200
conn
data
displayurl http://192.168.178.28/index.html
header
host 192.168.178.28
httpheader HTTP/1.1 200 OK
Date: Wed, 10 Aug 2016 18:52:03 GMT
Server: Apache/2.4.10 (Raspbian)
Last-Modified: Wed, 10 Aug 2016 18:50:34 GMT
ETag: "334a-539bc1fdc59ae"
Accept-Ranges: bytes
Content-Length: 13130
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
httpversion 1.0
hu_blocking 0
hu_filecount 29
ignoreredirects 0
loglevel 4
path /index.html
protocol http
redirects 0
timeout 2
url http://192.168.178.28/index.html
value 0
QUEUE:
Readings:
2016-08-10 20:52:03 Außentemperatur
<td class="stats_data">13,6°C
2016-08-10 20:52:03 Barometer
<td class="stats_data">1020,7 mbar
2016-08-10 20:52:03 Heutige Regenmenge von 0 bis 0 Uhr
<td class="stats_data">0,7 mm
2016-08-10 20:52:03 Innentemperatur
<td class="stats_data">20,6°C
2016-08-10 20:52:03 Luftfeuchte
<td class="stats_data">75%
2016-08-10 20:52:03 Regenrate
<td class="stats_data">0,0 mm/hr
2016-08-10 20:52:43 Windgeschwindigkeit 6,0
Request:
data
header
ignoreredirects 0
retryCount 0
type update
url http://192.168.178.28/index.html
value 0
Defptr:
Readingbase:
Außentemperatur reading
Barometer reading
Heutige Regenmenge von 0 bis 0 Uhr reading
Innentemperatur reading
Luftfeuchte reading
Regenrate reading
Windgeschwindigkeit reading
Readingnum:
Außentemperatur 06
Barometer 01
Heutige Regenmenge von 0 bis 0 Uhr 07
Innentemperatur 08
Luftfeuchte 03
Regenrate 05
Windgeschwindigkeit 02
Readingoutdated:
Requestreadings:
Update:
Außentemperatur reading 06
Barometer reading 01
Heutige Regenmenge von 0 bis 0 Uhr reading 07
Innentemperatur reading 08
Luftfeuchte reading 03
Regenrate reading 05
Windgeschwindigkeit reading 02
Sslargs:
Attributes:
reading01Name Barometer
reading01Regex (?s)>Barometer</td>(.*?)<\/td>
reading02Name Windgeschwindigkeit
reading02Regex (?s)>Wind</td>(.*?)<\/td>
reading03Name Luftfeuchte
reading03Regex (?s)>Humidity</td>(.*?)<\/td>
reading05Name Regenrate
reading05Regex (?s)>Rain Rate</td>(.*?)<\/td>
reading06Name Außentemperatur
reading06Regex (?s)>Outside Temperature</td>(.*?)<\/td>
reading07Name Heutige Regenmenge von 0 bis 0 Uhr
reading07Regex (?s)>Today's Rain</td>(.*?)<\/td>
reading08Name Innentemperatur
reading08Regex (?s)>Inside Temperature</td>(.*?)<\/td>
reading09Name Barometer Trend
reading09Regex (?s)>Barometer Trend (3 hours)</td>(.*?)<\/td>
room Wetter
stateFormat Windgeschwindigkeit
userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name
VG
André
Zitat von: Stargazer am 10 August 2016, 20:54:40
da isses. Sieht nicht nach einer Umstellung des Wertes aus. Obwohl er in den readings der Station die 6,0 bei Wind eingetragen hatte.
Du hast:
setreading Wetterstation Windgeschwindigkeit 6,0
eingegeben?
Wurde dabei wie gewünscht eingeschaltet?
Bitte immer vollständige Angaben machen zu jedem Versuch, ich kann ja nicht sehen was Du machst! 8)
Gruß
Dan
Jepp.
Ich habe setreading Wetterstation Windgeschwindigkeit 6,0
eingegeben und es wurde der dummy auch eingeschaltet.
Gruß
André
Und wo liegt jetzt das Problem immer noch?
Schaltet er bei
setreading Wetterstation Windgeschwindigkeit 0,1
jetzt aus?
Gruß
Dan
Hi Dan,
er schaltet bei dem Befehl aus.
Doch ich weiß jetzt glaub ich, wo der Hase begraben liegt. Und zwar schreibt er ja die vorgegeben setreading-Werte in das reading vom HTTPMOD-Modul.
So. Jetzt ist es so, dass bei diesem setreading NUR der vorgegebene Wert dort erscheint. Und wenn die 30 Sekunden rum sind, und das reading "Windgeschwindigkeit" neu eingelesen wird, erscheint z.B.: 0,4 m/s from 235° (SW)
Ergo hat er wohl immer noch ein Problem mit dem Format des Windmessers.
Also müsste man noch den Rest ab einschließlich m/s wegrasieren, oder ?
Oder liest er automatisch den ersten Wert ein ? Das wäre das hinfällig.
VG
André
Genau das "Wegrasieren" macht $EVTPART !!!
Was kommt denn im Log von dem notify wenn automatisch aktualisiert wird?
Gruß
Dan
Mach doch mal ein:
setreading Wetterstation Windgeschwindigkeit 0,4 m/s from 235° (SW)
Gruß
Dan
Sehr interessant, mit dem setreading Wetterstation Windgeschwindigkeit 0,4 m/s from 235° (SW)
- Befehl.
Da läuft das schalten perfekt. Wenn er aber dann wieder nach 60 Sekunden den Live-Wert vom Sensor bekommt und eigentlich schalten müsste, tut er das dann nicht.
Mit dem kompletten o.g. setreading läufts gut !
VG
André
Wird denn beim Live-Wert das notify überhaupt getriggert?
Kommen im Log die Werte der Variablen an?
Gruß
Dan
Hi,
wenn ich das setreading eingebe, mit 0,1er Grenzwert, kommt folgendes im Monitor:
2016.08.10 21:54:57 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: 0,1
2016.08.10 21:54:57 3 : Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: 0.1
2016-08-10 21:54:57 dummy Antaris_SturmStopp off
2016-08-10 21:54:57 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 0,1 m/s from 235° (SW)
2016-08-10 21:54:57 HTTPMOD Wetterstation Windgeschwindigkeit: 0,1 m/s from 235° (SW)
Aber sonst, im normalen Betrieb, triggert er nicht. Das kann ich mit dem Live-Wert ja am besten testen, indem ich den Schaltwert anpasse. Aber da reagiert der dummy eben nicht.
Alles komisch...
VG
André
Ich kenne mich mit HTTPMOD nicht aus. Schau mal ob Du da eventuell irgendein Attribut speziell setzen musst dass Events getriggert werden.
Eventuell:
attr Wetterstation event-on-change-reading .*
Gruß
Dan
So !
Ich habe einmal das event-on-change Attribut für alle readings, wie du es als Code bereitgestellt hast, eingegeben.
Das dürfte wahrscheinlich nicht viel bringen, da das HTTPMOD-Modul durch den Intervall eh alle 60 Sekunden die readings aktualisiert.
Also kann sich das Notify da schon sauber bedienen, was ja auch unten angezeigt wird. Wenn ich den Browser mit dem Notify aktualisiere, ändert sich ja auch der Live-Wert des Windes. Also sollte das Notify da keine Probleme mit der Wertübermittlung haben. Aber ich weiß glaub ich trotzdem, worauf du hinaus willst.
Mal sehen. Ich lasse das jetzt mal so.
VG
André
Guten Morgen,
wäre es vll. noch möglich, das $EVPART weg zu lassen, so das er das volle reading nimmt ?
Viele Grüße
André
Wozu das? Du willst doch nur den Zahlenwert der Windgeschwindigkeit haben oder?
Genau das macht $EVPTPART1 an der Stelle.
Ich denke bei Dir stimmt etwas generell nicht mit Deinen Events. Es sind ja offensichtlich keine im "Regexp wizard" bei Dir vorhanden, da sollten eigentlich alle Events auftauchen wenn es welche gibt. Hast Du denn im log Ordner von FHEM eine Datei eventTypes.txt und wenn ja steht auch was drin?
Gruß
Dan
Hi Dan,
das kann ich dir erst heute Nachmittag beantworten, da ich so keinen SSH-Zugriff auf den RasPi habe.
Bei dem ersten Notify zur Windanlage habe ich das ja auch mit dem RegEx-Wizard, wo keine Auswahl drin steht und es läuft perfekt.
Der einzige Unterschied zwischen der Windanlage und dem Windmesser ist halt, das der Windmesser nicht den reinen blanken Messwert ausgibt, sondern den Term mit der Windrichtung dazu.
VG
André
Zitat von: Stargazer am 11 August 2016, 10:42:22
............, da ich so keinen SSH-Zugriff auf den RasPi habe.
Das ist natürlich ein riesen Skandal... ;D ;D ;D
Zitat von: Stargazer am 11 August 2016, 10:42:22
Der einzige Unterschied zwischen der Windanlage und dem Windmesser ist halt, das der Windmesser nicht den reinen blanken Messwert ausgibt, sondern den Term mit der Windrichtung dazu.
Wie gesagt, das ist völlig egal wie viel im Reading steht, $EVTPART1 nimmt den ersten Wert aus dem Reading bis zum ersten Leerzeichen, also in Deinem Falle genau der Zahlenwert der Windgeschwindigkeit.
Gruß
Dan
Hi Dan,
hab sie gefunden.
Hier mal der Inhalt:
425 Alarm off
376 Alarm on
55 Alarm on-for-timer .*
819 AllLights LastDevice: Alarm
26 AllLights LastDevice: Livingroom
26 AllLights LastDevice: Office
20 AllLights LastDevice: Outdoor
819 AllLights LastDevice_Abs: Alarm
26 AllLights LastDevice_Abs: Livingroom
26 AllLights LastDevice_Abs: Office
20 AllLights LastDevice_Abs: Outdoor
426 AllLights off
33 AllLights on
477 AllLights undefined
406 CUL_0 TRANSMIT LIMIT EXCEEDED
11 CeilingLight dim0%
19 CeilingLight dim37%
33 CeilingLight off
1 Lamp1 on
6 Livingroom dim0%
1 Livingroom dim06%
12 Livingroom dim100%
1 Livingroom dim18%
1 Livingroom dim37%
3 Livingroom dim50%
1 Livingroom dim62%
1 Livingroom dim68%
3 Livingroom dim75%
2 Livingroom dim87%
20 Livingroom off
22 Livingroom on
1 Office dim100%
1 Office dim50%
1 Office dim75%
1 Office dim93%
31 Office off
35 Office on
28 Outdoor off
29 Outdoor on
5 Outdoor on-for-timer .*
29 Projector off
17 Projector on
7 ReadingLight dim0%
13 ReadingLight dim12%
19 ReadingLight dim37%
24 ReadingLight off
1 SVG_01_Garden copyGplotFile
1 SVG_02_Cellar copyGplotFile
1 SVG_03_Dewpoint copyGplotFile
1 SVG_Log.Cellar_1 copyGplotFile
2 SVG_Log.Dewpoint_1 copyGplotFile
1 SVG_Log.Garden_1 copyGplotFile
17 Screen down
30 Screen up
1 Sens.Out T: .* H: .* W: .* R: .* IR: no
31 TV off
14 TV on
15 lcCinema scene AllOff
19 lcCinema scene Break
16 lcCinema scene Cinema
13 lcCinema scene WatchTV
740 minuteTimer
1 rgr_Children home
1 rgr_Children lastActivity: home
1 rgr_Children lastActivityBy: Baby
1 rgr_Children lastAwake: .*.*.* .*:.*:.*
1 rgr_Children lastDurSleep: .*:.*:.*
1 rgr_Children lastState: asleep
2 rgr_Children register rr_Baby
2 rgr_Children register rr_Daughter
2 rgr_Children register rr_Son
1 rgr_Children residentsAsleep: .*
1 rgr_Children residentsHome: .*
2 rgr_Guests register rg_Guest1
2 rgr_Guests register rg_Guest2
1 rgr_Parents lastActivity: absent
1 rgr_Parents lastActivityBy: Father
2 rgr_Parents register rr_Father
2 rgr_Parents register rr_Mother
1 rgr_Parents residentsAbsent: .*
1 rgr_Parents residentsGone: .*
1 rgr_Residents lastActivity: absent
1 rgr_Residents lastActivity: home
1 rgr_Residents lastActivityBy: Baby
1 rgr_Residents lastActivityBy: Father
2 rgr_Residents register rg_Guest1
2 rgr_Residents register rg_Guest2
2 rgr_Residents register rr_Baby
2 rgr_Residents register rr_Daughter
2 rgr_Residents register rr_Father
2 rgr_Residents register rr_Mother
2 rgr_Residents register rr_Son
1 rgr_Residents residentsAbsent: .*
1 rgr_Residents residentsAsleep: .*
1 rgr_Residents residentsGone: .*
1 rgr_Residents residentsHome: .*
1 rr_Baby durTimerPresence: .*
2 rr_Baby durTimerSleep: .*
1 rr_Baby home
1 rr_Baby lastAwake: .*.*.* .*:.*:.*
1 rr_Baby lastDurSleep: .*:.*:.*
1 rr_Baby lastState: asleep
1 rr_Baby mood: calm
2 rr_Daughter durTimerAbsence: .*
1 rr_Father absent
2 rr_Father durTimerAbsence: .*
1 rr_Father lastState: gone
2 rr_Mother durTimerPresence: .*
2 rr_Son durTimerAbsence: .*
VG und Danke..
Andre
Die benötigten Events kann ich aber nicht im Inhalt finden, oder ist das nur ein Auszug?
Sind FHEM und Dein Betriebssystem auf einem tagesaktuellen Stand?
Gruß
Dan
Hi,
ich habe gerade beides nochmal geupdatet. Hat sich an der Datei nix geändert.
Der Code den ich dir geschickt habe ist der komplette Code, kein Ausschnitt.
Ich kann es nicht wirklich verstehen... ???
Aber nur so kann man lernen...
VG
André
Ehrlich gesagt weiß ich dann hier auch nicht weiter warum bei Dir die Events offensichtlich nicht ankommen. Der Code von mir funktioniert auf jeden Fall, das hat ja das manuelle setreading bereits bewiesen. Vielleicht fragst Du spezifisch zum HTTPDMOD Modul und Events nochmal im Forum.
Gruß
Dan
Da fällt mir noch was ein,
kann es sein, dass FHEM2FHEM damit etwas zu tun haben könnte. Der RasPi, wo wir derzeit drauf arbeiten ist der Remote-Server.
Der schickt ein paar Sachen auf den Master. Da dachte ich nur bezüglich des notify. Denn auf dem Master habe ich dann beim Notify das Drop-down Menü mit der Regex Auswahl. Oder ich teste das mal auf dem System ? Die Daten bekomme ich ja dahin, wie es scheint.
Du hast mir mit deiner Geduld und den SUPER Tipps extrem weitergeholfen. Ich danke dir dafür sehr herzlich !!!!
Ich weiß, dass so etwas nicht selbstverständlich ist... .
VG
André
Schön dass Du jetzt damit rausrückst.
Klar hat FHEM2FHEM was damit zu tun. Kenne mich damit zwar nicht aus, aber ich denke die Events kommen nur beim Master an. Deswegen der leere Wizard.
Gruß
Dan
OKAY...!
Da ist wohl jetzt nochmal ein DICKES SORRY von Nöten.... :-[ :'( .
Ich habe das FHEM2FHEM vorhin aufgelöst und das System neu gestartet.
Ich habe mal ein Bild angehangen, wie es jetzt aussieht.
Wenn ich oben dann bei dem Regex-Wizard "Wetterstation" und "Windgeschwindigkeit" eingebe, aus "Set" klicke, passiert natürlich nix. Da das im Regex schon eingetragen geht. Nehme ich aus Spaß mal etwas anderes in der Wizard-Auswahl, erscheint oben die Wetterstation:Windgeschwindigkeit und auch das zweite, was ausgewählt wurde. Wenn ich das Fake-Regex wieder lösche, steht oben auch die Wetterstation nicht mehr.
Wenn ich im DEF etwas ändere und dann übernehme, so löst der Dummy richtig aus. Stelle ich den Grenzwert um, auf z.B. >=1.0, so ändert er den Dummy nicht.
Auf Setreadings reagiert er aber wie gewohnt.
Ich werde wohl auf das Pferd der Mittleren_Leistung setzen. Das werde ich bei Sturm mal ermitteln und dann gucken wie das funktioniert.
Trotzdem nochmals VIELEN DANK für die Hilfe hier im Forum, Dan.
Viele Grüße
André
Dass mit den Events bei Dir was nicht stimmt hatte ich ja relativ zeitig vermutet, an dieser Stelle wäre die Info mit FHEM2FHEM gut gewesen.
Zitat von: Stargazer am 11 August 2016, 20:23:49
Wenn ich im DEF etwas ändere und dann übernehme, so löst der Dummy richtig aus. Stelle ich den Grenzwert um, auf z.B. >=1.0, so ändert er den Dummy nicht.
Auf Setreadings reagiert er aber wie gewohnt.
Das verstehe ich wieder nicht. Wieso löst der Dummy aus wenn Du an der DEF des notify was ändern? Der kann doch erst auslösen wenn das entsprechende Event getriggert wird und das ist beim Speichern der DEF nicht der Fall.
Gruß
Dan
Grüß dich, Dan !
Ich habe nun das Notify und den Dummy komplett gelöscht und wieder neu eingerichtet.
So wie der letzte Stand war, mit folgendem Code:
Wetterstation:Windgeschwindigkeit.*|Wetterstation:Windgeschwindigkeit:.* {my $reading = $EVTPART1; $reading =~ s/,/./g; $reading = $reading*1; if($reading > 1.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
...dann habe ich ein setreading mit 6,0 gemacht und vom Event Monitor folgende Meldung erhalten:
2016-08-12 19:59:43 dummy Antaris_SturmStopp on
2016-08-12 19:59:43 readingsGroup TFA_Station Wetterstation.Windgeschwindigkeit: 6,0
2016-08-12 19:59:43 HTTPMOD Wetterstation Windgeschwindigkeit: 6,0
.
.
.
2016.08.12 19:59:50 1 : PERL WARNING: Argument "<td" isn't numeric in multiplication (*) at (eval 103) line 2.
2016.08.12 19:59:50 3 : eval: my $NAME='Wetterstation';my $EVTPART1='<td';my $EVENT='Windgeschwindigkeit: <td class="stats_data">2,0 m/s from 248° (WSW)';my $SELF='Sturmwarnung_Test';my $EVTPART4='from';my $EVTPART5='248°';my $EVTPART6='(WSW)';my $EVTPART0='Windgeschwindigkeit:';my $TYPE='HTTPMOD';my $EVTPART3='m/s';my $EVTPART2='class="stats_data">2,0';{my $reading = $EVTPART1; $reading =~ s/,/./g; $reading = $reading*1; if($reading > 1.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
2016-08-12 19:59:50 dummy Antaris_SturmStopp off
Die drei Punkte ersetzen nur Events von anderen Devices. Sind von mir eingefügte Platzhalter.
Das "<td" unterdrücke ich bei den Regex von HTTPMOD, da es zum HTML-Format gehört. Nur so kommt der saubere readingswert der Wetterstation durch.
Darum frage ich mich, wie auf das <td überhaupt kommt. Das Ausleseformat im HTTPMOD sieht wie folgt aus:
<tr> <td class="stats_label">Wind</td> <td class="stats_data">1,5 m/s from 252° (WSW)</td> </tr>
Ausgelesen wird via: (?s)>Wind</td>(.*?)<\/td>
Zudem habe ich jetzt im Regex-Wizard nochmals die Wetterstation und die Windgeschwindigkeit eingestellt. Er zeigt mir dann oben zwei mal RegexPart "Wetterstation:Windgeschwindigkeit.*" an.
Wie du siehst...komplett runderneuert, mit vll. Aussicht auf Heilung... ;)
Viele Grüße und Danke...
André
Hallo,
ich habe jetzt nochmal den Event-Monitor genauer beobachtet. Also...wir kommen Stück für Stück näher !
Das Event wird jetzt im Notify getriggert..und zwar alle 60 Sekunden. Das entspricht exakt dem Abfrageinterval vom HTTPMOD.
Ich habe kein setreading oder sonst etwas gemacht. Die Abrage scheint zu gehen... :D
Da kommt jetzt folgende Meldung, wie gesagt..jede Minute:
2016.08.12 20:46:51 1 : PERL WARNING: Argument "<td" isn't numeric in multiplication (*) at (eval 216) line 2.
2016.08.12 20:46:51 3 : eval: my $TYPE='HTTPMOD';my $EVTPART0='Windgeschwindigkeit:';my $EVTPART3='m/s';my $EVTPART2='class="stats_data">1,0';my $EVTPART4='from';my $EVTPART6='(SW)';my $EVTPART5='220°';my $SELF='Sturmwarnung_Test';my $EVTPART1='<td';my $EVENT='Windgeschwindigkeit: <td class="stats_data">1,0 m/s from 220° (SW)';my $NAME='Wetterstation';{my $reading = $EVTPART1; $reading =~ s/,/./g; $reading = $reading*1; if($reading > 1.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
2016.08.12 20:47:51 1 : PERL WARNING: Argument "<td" isn't numeric in multiplication (*) at (eval 219) line 2.
2016.08.12 20:47:51 3 : eval: my $NAME='Wetterstation';my $EVTPART1='<td';my $SELF='Sturmwarnung_Test';my $EVENT='Windgeschwindigkeit: <td class="stats_data">1,0 m/s from 220° (SW)';my $EVTPART4='from';my $EVTPART5='220°';my $EVTPART6='(SW)';my $EVTPART0='Windgeschwindigkeit:';my $TYPE='HTTPMOD';my $EVTPART3='m/s';my $EVTPART2='class="stats_data">1,0';{my $reading = $EVTPART1; $reading =~ s/,/./g; $reading = $reading*1; if($reading > 1.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
2016.08.12 20:48:51 1 : PERL WARNING: Argument "<td" isn't numeric in multiplication (*) at (eval 221) line 2.
2016.08.12 20:48:51 3 : eval: my $NAME='Wetterstation';my $EVTPART1='<td';my $EVENT='Windgeschwindigkeit: <td class="stats_data">1,0 m/s from 220° (SW)';my $SELF='Sturmwarnung_Test';my $EVTPART5='220°';my $EVTPART6='(SW)';my $EVTPART4='from';my $EVTPART3='m/s';my $EVTPART2='class="stats_data">1,0';my $TYPE='HTTPMOD';my $EVTPART0='Windgeschwindigkeit:';{my $reading = $EVTPART1; $reading =~ s/,/./g; $reading = $reading*1; if($reading > 1.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
2016.08.12 20:49:51 1 : PERL WARNING: Argument "<td" isn't numeric in multiplication (*) at (eval 222) line 2.
2016.08.12 20:49:51 3 : eval: my $EVTPART0='Windgeschwindigkeit:';my $TYPE='HTTPMOD';my $EVTPART2='class="stats_data">1,0';my $EVTPART3='m/s';my $EVTPART4='from';my $EVTPART6='(SW)';my $EVTPART5='220°';my $EVTPART1='<td';my $EVENT='Windgeschwindigkeit: <td class="stats_data">1,0 m/s from 220° (SW)';my $SELF='Sturmwarnung_Test';my $NAME='Wetterstation';{my $reading = $EVTPART1; $reading =~ s/,/./g; $reading = $reading*1; if($reading > 1.0){fhem("set Antaris_SturmStopp:FILTER=state=off on")} else {fhem("set Antaris_SturmStopp:FILTER=state=on off")}}
Das "(eval2xx) line 2" ändert sich immer.
Viele Grüße
André
Nochmal ich... ;)
Also...ich habe jetzt nochmal folgenden Code zum Ausprobieren:
define Sturmwarnung_Test notify Wetterstation:Windgeschwindigkeit.* {Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit vor Subst: $EVTPART1";; my $reading = $EVTPART1;; $reading =~ s/,/./g;; $reading = $reading*1;; Log3 undef,3,"Wert von EVTPART1 in Wetterstation:Windgeschwindigkeit nach Subst: $reading";; if($reading > 4.0){fhem("set Antaris_SturmStopp on")} else {fhem("set Antaris_SturmStopp off")}}
Ich kann ja nun den Schaltwert verändern. Dass muss ich ja auch, will ich mit den Livedaten testen.
Folgendes Szenario:
Livewerte vom Windmesser: 0,9 m/s from 211° (SSW)
Der Dummy ist im Ist-Zustand "off".
Nun verändere ich den Schaltwert auf <1.0.
Der Dummy schaltet sofort auf "on".
Stelle ich den Wert, nachdem der dummy auf "off" geschaltet wurde, auf >=0,5, so schaltet der Dummy nicht. Der Unterschied liegt ja wirklich nur in "Größer" und "Kleiner". Oder halt >= .
Was ist da faul ?
VG
André
Bitte poste mal Deine komplette Definition von der Wetterstation (HTTPMOD) so wie sie in der fhem.cfg steht inklusive aller attr.
Dann kann ich das mal in meiner Testumgebung genau so anlegen wie bei Dir und schauen wie es aussieht.
Gruß
Dan
Grüß dich, Dan
hier mal der gesamte HTTPMOD - Auszug aus der fhem.cfg:
define Wetterstation HTTPMOD http://192.168.178.28/index.html 10
attr Wetterstation userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex valueFormat
attr Wetterstation reading01Name Barometer
attr Wetterstation reading01Regex (?s)>Barometer</td>(.*?)<\/td>
attr Wetterstation reading02Name Windgeschwindigkeit
attr Wetterstation reading02Regex (?s)>Wind</td>(.*?)<\/td>
attr Wetterstation reading03Name Luftfeuchte
attr Wetterstation reading03Regex (?s)>Humidity</td>(.*?)<\/td>
attr Wetterstation reading05Name Regenrate
attr Wetterstation reading05Regex (?s)>Rain Rate</td>(.*?)<\/td>
attr Wetterstation reading06Name Außentemperatur
attr Wetterstation reading06Regex (?s)>Outside Temperature</td>(.*?)<\/td>
attr Wetterstation reading07Name Heutige Regenmenge von 0 bis 0 Uhr
attr Wetterstation reading07Regex (?s)>Today's Rain</td>(.*?)<\/td>
attr Wetterstation reading08Name Innentemperatur
attr Wetterstation reading08Regex (?s)>Inside Temperature</td>(.*?)<\/td>
attr Wetterstation reading09Name Barometer Trend
attr Wetterstation reading09Regex (?s)>Barometer Trend (3 hours)</td>(.*?)<\/td>
attr Wetterstation room Wetter
attr Wetterstation stateFormat Windgeschwindigkeit
Viele Grüße
André
Hallo zusammen,
ich habe es anscheinend am laufen.
Ich lese an der Wetterstation, am HTTPMOD-Modul nur den reinen Wert für die Windgeschwindigkeit aus und formatiere diese dann vom Komma zum Punkt Wert. Fertig. So kann ich den Wind mit Loggen lassen und auch das Notify läuft und schaltet so wie es soll.
Viele Grüße und besten Dank nochmal
André
Hatte am Wochenende keine Zeit zum Probieren.
Super wenn es jetzt läuft!
Gruß
Dan