NEWS
Accuweather - stündliche Werte nicht komplett
-
@thomkast sagte in Accuweather - stündliche Werte nicht komplett:
Bei Forcast.Solar finde ich keinen releasten Adapter und kenne mich mit script zu wenig aus, um es eigenständig umsetzen zu können
Wie gesagt - wenn Du den NodeRed Adapter nutzen willst, dann kann ich Dich gerne hier unterstützen und beschreiben, was Du tun musst und wir machen das entweder mit ForecastSolar oder der OneCallAPI und erstellen Dir die Datenpunkte.
Bei dem ForcastSolar musst Du eigentlich nur Deinen Längen und Breitengrad im Browser eingeben und
Die nächsten 3 Zahlen sind
in dem AufrufNeigung (dec), Ausrichtung (az) und kW der Panele.
Wenn Du mit einem Openweather API Key die Daten im Browser bekommst dann kann ich Dir ebenfalls helfen, die mit Hilfe von NodeRed in Datenpunkte zu schreiben.
Du musst halt immer nur testen, ob Du im Browser richtige Daten bekommst. Wenn Du den OneCall von Openweather im Browser machst musst halt Deinen API Key hinten dran hängen.
-
@thomkast sagte in Accuweather - stündliche Werte nicht komplett:
Ich hab den mal benutzt und mit einem ganz einfachen Node-Red Flow bekommst Du die Daten aus Deinem Aufruf als Datenpunkte in den iobroker.
Für die fehlenden Objekte lassen wir dann auch noch ein Skript drüber laufen.
Das sieht dann im iobroker so aus:
Außerdem hast Du Post (PN
)
Also wenn Du das so wie oben haben willst, dann installiere Dir mal den NodeRed Adapter im iobroker. In der Konfiguration des Adapters
machst Du die Konvertierung in Zeichenkette raus und lässt die Erstellung von Fremdobkjekten zu.
-
So, da bin ich wieder... Habe noch 2 zwei-beinige-Projekte, die zu erst zur Ruhe kommen wollen
Mit node-red wollte ich mich eh mal beschäftigen. Dann scheint wohl jetzt eine guter Moment zu sein
. Arbeite mich anhand Deiner Infos voran und melde mich dann.
... schon mal wieder vielen Dank vorab!
-
@mickym sagte in Accuweather - stündliche Werte nicht komplett:
@thomkast sagte in Accuweather - stündliche Werte nicht komplett:
Ich hab den mal benutzt und mit einem ganz einfachen Node-Red Flow bekommst Du die Daten aus Deinem Aufruf als Datenpunkte in den iobroker.
Für die fehlenden Objekte lassen wir dann auch noch ein Skript drüber laufen.
Das sieht dann im iobroker so aus:
Außerdem hast Du Post (PN
)
Also wenn Du das so wie oben haben willst, dann installiere Dir mal den NodeRed Adapter im iobroker. In der Konfiguration des Adapters
machst Du die Konvertierung in Zeichenkette raus und lässt die Erstellung von Fremdobkjekten zu.
Also der node-red-Adapter läuft und die nötigen Nodes habe ich auch schon zusammengeklickt...
Aber da fehlen doch noch die ganzen Definition dazu...Oder? -
@thomkast Wenn Du die NodeRed-Adaptereinstellungen gemacht hast, dann brauchst Dir keine Nodes zusammensuchen, sondern importierst den Flow einfach:
Falls Du im Chrome auf die Datei klickst wird der Text aufgemacht dann mit rechter Maustaste mit "Speichern unter " irgendwo lokal abspeichern.
Anschließend gehst Du in das rechte Menü und klickst auf Import:
Klickst in dem Fenster auf Datei importieren und wählst die OPenweather One Call.json Datei aus.
Über die Zwischenablage gehts dieses Mal nicht, da irgendein Apostroph den Import verhindert.
In der Inject Node änderst Du wieder Deine Geodaten und Deinen API Key.
In der msg.top Node - kannst Du noch einen anderen Namen angeben, unter dem Du die Datenpunkte unter 0_userdata.0 anlegen willst. Ich habs halt mal openweather genannt.
Wenn das alles soweit geht, feuerst Du die Inject Node ab und DU solltest die Datenpunkte alle haben und dann müssen wir das seit dem admin5 noch fein schleifen.
-
@mickym
Import ist erledigt. Im inject habe ich die URL komplettiert.
msg.top sieht nun so aus.
Rest habe ich nur angeschaut und nichts geändert...Allerdings finde ich keine neue Gruppe und auch keine Datenpunkte in 0_userdata..?..?
-
-
Hast Du den Flow übernommen
darf nicht so rot sein, sondern muss grau sein.
-
Hast Du dem NodeRed Adapter erlaubt Objekte zu erstellen
-
Hast Du den Flow auch über die Inject Node gestartet?
habs Dir mal markiert wie Du den Flow startest.
Wenn alles geklappt hat, dann hast Du
unter 0_userdata => 0 => openweather => hourly => und dann 48 Unterordner.
Wenn nicht müssen wir halt über debug Nodes schauen, wo der Fehler liegt.
-
-
@mickym
Ja, glaubt man es denn... Kaum macht man es richtig, schon funktionierts.
Ok, das sind echt die ersten Schritte. Und den inject zu starten hat ich nicht auf der Schnur.
Schaue mir jetzt mal die Werte an. -
@thomkast Helf Dir gleich weiter. Mach noch einen Flow für Dich.
-
@thomkast
Keine HektikDie 47 Folder ergeben sich offensichtlich aus den Daten. Allerdings ist die Uhrzeit nicht als DATE darstellbar. Die Werte stehen dann auf 1970... Daher weiß ich jetzt nicht welche zeit der Folder 0h enthält.
Könnte der Wert als reguläres Datum dargestellt werden? -
@thomkast Das ist gleich mein 2. Flow für Dich - wie willst Du den Datumspunkt gerne genannt haben, habs gerade
forcastTime genannt - aber such Dir gerne was anderes aus, dann ändere ich das noch schnell in dem Flow.
Normalerweise darf da aber gar kein Datum drin stehen, sondern nur eine Zahl
-
@mickym
Alles bestens, ist doch ein guter Vorschlag.
Habe das UNIX-Datum mal umgerechnet. 0h bedeutet die aktuelle Stunde - also 2200. -
@mickym sagte in Accuweather - stündliche Werte nicht komplett:
@thomkast Das ist gleich mein 2. Flow für Dich - wie willst Du den Datumspunkt gerne genannt haben, habs gerade
forcastTime genannt - aber such Dir gerne was anderes aus, dann ändere ich das noch schnell in dem Flow.
Normalerweise darf da aber gar kein Datum drin stehen, sondern nur eine Zahl
Ja klar. Ich habe die Rolle manuell auf DATE geändert. Dachte es wird dann direkt korrekt dargestellt. Als Rolle STATE steht dann das UNIX UTC Datum/Uhrzeit als Zahl drin.
-
@thomkast So wenn Du in Deinen bestehenden Flow noch folgende Nodes importierst, dann wird das um neue Datenpunkte mit ausgeschriebenem Datum ergänzt:
Dieses Mal kannst Du den Code direkt über die Zwischenablage importieren:
Dann bekommst Du die folgenden Nodes noch dazu:
Eigentlich müsste es ja forecastTime heißen:
Musst halt hier nochmal ändern:
-
@thomkast So nun noch ein paar Ergänzungen - weil seit dem admin5 sich einiges geändert hat und in NodeRed hat man das bei den iobroker-out Nodes nicht mitberücksichtigt.
Bei den ganzen Ordnern fehlen leider die Objekte (rot markiert):
Deshalb bitte folgendes Skript im Javascript Adapter als Javascript importieren:
/** * Zweck: Korrigiert übergeordnete Ordnerstrukturen eines Datenpunkts * Datum: 07.08.2021 * Autor: @fastfoot */ // In den Settings der Javascript-Instanz muss setObject erlaubt sein!!! let arr = [], id = ''; const ids = $('0_userdata.0.*'); ids.each(idTmp => { arr=idTmp.split('.'); arr.splice(arr.length-1); id=arr.join('.'); if(arr[0] === '0_userdata' || arr[0] === 'alias' || arr[0] === 'mqtt' || arr[0] === 'javascript'){ correctObject(id, arr); } }) function correctObject(id,arr){ if(arr.length === 2) return; if(!existsObject(id)){ let obj = {}; obj = { type: 'folder', common:{ name: arr[arr.length - 1] } } extendObject(id, obj, e => { if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e); }) } arr.splice(arr.length - 1); id = arr.join('.'); correctObject(id, arr); }
Dieses Skript musst Du einmal Laufen lassen und immer dann - wenn Du mal den ganzen Openweather Ast löscht.
Sobald das Skript einmal gelaufen ist, dann sind das wieder saubere Folder Objekte:
-
@mickym
Also, Du machst mich vollends sprachlos....Klappt perfekt und die Daten sehen gut aus. Damit kann ich erst mal meine weiteren Überlegungen anstellen.
Müsste jetzt nicht noch der inject per CRON automatisiert werden?
Hattest Du bei OW gelesen wie oft die Daten aktualisiert werden? -
@thomkast Und damit Du wenn alles klappt nicht immer auf die Inject - Node drücken musst - öffnest Du die Inject Node einfach und gibst unten an, in welchen Zeitintervallen die Openweather API aufgerufen werden soll:
-
@thomkast sagte in Accuweather - stündliche Werte nicht komplett:
@mickym
Also, Du machst mich vollends sprachlos....Klappt perfekt und die Daten sehen gut aus. Damit kann ich erst mal meine weiteren Überlegungen anstellen.
Müsste jetzt nicht noch der inject per CRON automatisiert werden?
Hattest Du bei OW gelesen wie oft die Daten aktualisiert werden?Hab ich Dir gerade geschrieben, in der Inject-Node kannst Du selbst das Intervall bestimmen, wie oft dieses automatisch abruft. Ich machs alle 10 Minuten - aber bei 1000 Aufrufen/Tag solltest Du nun keine Probleme mehr haben.
-
@mickym
Oh cool! Sogar mit "Intervall zwischen Uhrzeiten".Vielleicht noch den eigentlichen UseCase zum Ende der Umsetzung
...
Wir haben eine Wärmepumpe erhalten, die über SGready den Wasserspeicher um 5K überhitzen kann. Wenn also viel PV-Überschuss zur Verfügung steht, kann der Speicher zusätzlich aufgeheizt werden und damit bei späterer Nutzung Energie gespart werden.
Das Problem ist nur, wenn ich vom reinen Einspeisewert ausgehe, dann kommt es vor, dass die Einspeisemenge einbricht, die Wärmepumpe aber dennoch mind. 10 Minuten läuft und und für diese Dauer dann Strom zugekauft werden muss.
Sofern die OpenWeather-UVindex-Werte einigermaßen passen, könnte erst ab einem entsprechend hohen Wert das SGready-Signal Verwendung finden.Vielleicht hilft Deine Umsetzung ja auch noch anderen der Community. Mir hast Du auf alle perfekt weitergeholfen.
Schaue mir die Tage mal node-red und Deine Umsetzung tiefer an. Dann würde ich mich vielleicht gerne noch mal bei Dir melden.Für heute meinen herzlichen Dank für Deine Hilfe.
-
@thomkast sagte in Accuweather - stündliche Werte nicht komplett:
Vielleicht hilft Deine Umsetzung ja auch noch anderen der Community. Mir hast Du auf alle perfekt weitergeholfen.
Schaue mir die Tage mal node-red und Deine Umsetzung tiefer an. Dann würde ich mich vielleicht gerne noch mal bei Dir melden.Für heute meinen herzlichen Dank für Deine Hilfe.
Ich hab Dir gerne weitergeholfen und vielleicht bist Du nun jemand (oder wirst es), der erkennt, was für ein tolles Tool Node Red ist, gerade wenn man in der Programmierung nicht so bewandert ist, sondern sich mehr auf die Logik konzentriert. Übrigens hilft Dir vielleicht auch der Clouds Wert - also der Bedeckungsgrad.
Ich nutz den bei meiner Visualisierung bei Tag hellblauer oder grauer Hintergrund.