NEWS
Umrechung Grad in Windrichtung HTML
-
Ja du hast recht, dass sollte hinhauen.
Ich melde mich sobald ich den Inhalt kapiert habe! :lol:
Danke!
-
Es genügt auch ein einfaches Skript.
const idGrad = '...'; // Datenpunkt-ID für Windrichtung in Grad const idDir = 'Windrichtung'; // Datenpunkt-Name für Windrichtung const dirs = ['N','NNO','NO','ONO','O','OSO','SO','SSO','S','SSW','SW','WSW','W','WNW','NW','NNW','N']; createState(idDir, 'N', {type: 'string'}); on(idGrad, function(dp) { var dir = dirs[Math.floor((dp.state.val + 11.25) / 22.5)]; setState(idDir, dir, true); });
EDIT: createState für neuen Datenpunkt unter javascript.0 ergänzt.
-
@paul53
Hi Paul,
kannst du mir als Anfänger sagen was genau die Datenpunkt -id ist? Ist es
HM-RP2xxxxx:1 und der Dantenpunt name die Wind_Dir_Range?Gruß
Alero -
@Alero sagte:
was genau die Datenpunkt -id ist?
Jedes ioBroker-Objekt hat eine eindeutige ID. Das ist quasi die "Adresse" des Objektes. Datenpunkte sind Objekte vom Typ state und haben eine ID wie z.B. "hm-rpc.0.NEQ1234567.1.STATE".
-
@paul53
Hi,Also so wie ich geschrieben habe. Muss bei der ID auch direkt der "State" mit dran? Und aus deinem script "Windrichtung" ist dann was genau?
Gruß
Alero -
@Alero sagte:
Muss bei der ID auch direkt der "State" mit dran?
Nein, zeige bitte einen Screenshot vom Reiter "Objekte" auf dem der Datenpunkt, auf dem die Windrichtung reinkommt (Datenpunkte Wetterstation) zu sehen ist.
-
Hi,
hier der screenshot:
Hier brauche ich, meiner Meinung nach den WIND_DIR_Range, oder?
Gruß
Alero -
@Alero sagte:
den WIND_DIR_Range, oder?
Ich nehme an, den hmp-rpc.N.Seriennummer.1.WIND_DIR. (N: Instanznummer)
-
const idGrad = 'openweathermap.0.forecast.current.windDirection'; // Datenpunkt-ID für Windrichtung in Grad const idDir = 'Windrichtung'; // Datenpunkt-Name für Windrichtung const dirs = ['N','NNO','NO','ONO','O','OSO','SO','SSO','S','SSW','SW','WSW','W','WNW','NW','NNW','N']; createState(idDir, 'N', {type: 'string'}); on(idGrad, function(dp) { var dir = dirs[Math.floor((dp.state.val + 11.25) / 22.5)]; setState(idDir, dir, true); });
Bitte löschen..............übersehen schon vorhanden....
-
@paul53
Hi, vielen Dank für deinen Mühe. Aber ich stehe auf dem Schlauch (heute schon das 2te mal
Was muss ich jetzt hier eintragen?
const idGrad = 'Wetterstation:1.WIND_DIR'; ?
const idDir = 'WIND_DIR';?Gruß
Alero -
const idGrad = 'hm-rpc.N.seriennummer.1.WIND_DIR'; // Datenpunkt-ID für Windrichtung in Grad const idDir = 'Wetter.Windrichtung'; // Datenpunkt-Name für Windrichtung
N.seriennummer durch die tatsächlichen Zahlen ersetzen !
-
@paul53
Habs so eingetragen.
Zeigt aber immer N an obwohl die Wetterstation 130 anzeigt.
Sollte doch SO sein, oder?Gruß
Alero -
@Alero sagte:
Zeigt aber immer N an
Wird denn getriggert ? Bau zum Test vor setState(idDir, dir, true) ein Log ein:
log(dp.state.val + ' --> ' + dir);
-
@paul53
Hi,
wenn ich die Objekte unter Javascript.0 gehe sehe ich das der Wert immer aktualisiert wird. Nur die Windrichtung (N) ändert sich nicht.Gruß
Alero -
@Alero Vielleicht liefert WIND_DIR keine Zahl, was aber bei HomeMatic unwahrscheinlich ist. Füge mal als erstes im Trigger dieses Log ein:
log(dp.state.val + ' Typ: ' + typeof dp.state.val);
-
@paul53
Hi, ist eingetragen.
Komisch, er aktualisiert nicht mehr unter Objekten. letzte Aktualisierung 13:59.Gruß
Alero -
@Alero sagte:
er aktualisiert nicht mehr unter Objekten
Es wird nur getriggert, wenn sich die Windrichtung ändert. Welche Ausgabe erscheint im Log ?
Was ist das ?on(idGrad, function(dp) {'{"time":{"start":"00:00","end":"23:59","mode":"hours","interval":1},"period":{"days":1}}'
-
@paul53
habs entfernt. War bestimmt der Grund für das nicht aktualisieren.
Im Log vom IOBroker ist nichts dazu gekommen.
Oder gibt es noch ein anderes Log?Gruß
Alero -
@Alero sagte:
Im Log vom IOBroker ist nichts dazu gekommen.
Dann wird auch nicht getriggert. Ändert sich die Windrichtung im Datenpunkt 'hm-rpc.2.001858A992B979.WIND_DIR' (Reiter "Objekte") ?
-
@paul53
Hi, der letzte Zeitstempel an der wetterstation selber ist 14:31.36
Gruß
Alero