NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@SBorg Danke für die Hinweise. Fehler gefunden. Fehler beim Eintragen von _ID oder _PW waren es nicht. Durch irgendeinen Umstand war in meinem Container das 'wget' verschwunden. Somit konnte ja auch keine Antwort von Wetter.com zurückkommen. Jetzt ist es wieder drin und 'Info.Wetter_com' ist wieder true.
-
Hallo.
Ich musste das Skript neu installieren wegen neuem System.
Jetzt habe ich folgende Meldungen im Log:2022-08-26 16:15:06.959 - info: simple-api.0 (10709) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Tag" has to be type "number" but received type "string" 2022-08-26 16:15:06.960 - info: simple-api.0 (10709) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Woche" has to be type "number" but received type "string" 2022-08-26 16:15:06.961 - info: simple-api.0 (10709) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Monat" has to be type "number" but received type "string" 2022-08-26 16:15:06.962 - info: simple-api.0 (10709) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Jahr" has to be type "number" but received type "string"
Was kann ich denn da machen?
Das war im alten System nicht so.Danke!
EDIT: GELÖST
Das hatte schon mal wer weiter oben.
Service neu gestartet und die Meldungen sind weg. -
@sborg Hallo, ich bin bei mir auch gerade dabei die Rest-API einzurichten, jetzt stehe aber komplett auf dem Schlauch, wie richte ich dafür einen eigenen User ein? Habe Tomaten auf den Augen, sorry für die Frage
-
@banza sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg Hallo, ich bin bei mir auch gerade dabei die Rest-API einzurichten, jetzt stehe aber komplett auf dem Schlauch, wie richte ich dafür einen eigenen User ein? Habe Tomaten auf den Augen, sorry für die Frage
Den richtest du im IoB ein unter Benutzer und dann wählst du den in den Einstellungen von rest-api aus
-
@nashra danke, dann funktioniert das bei mir nicht :-(, Benutzer ist eingerichtet, in den Einstellungen von von rest-api kann ich nur admin auswählen, nicht meinen neuen Benutzer
-
@nashra
Ich schliesse mich hier mal an. Welche Rechte benötigt der Benutzeraccount oder muss er in einer bestimmten Gruppe? Sicherlich nicht in die Admin-Gruppe, oder doch? -
@banza sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra danke, dann funktioniert das bei mir nicht :-(, Benutzer ist eingerichtet, in den Einstellungen von von rest-api kann ich nur admin auswählen, nicht meinen neuen Benutzer
Dann aktualisiere mal deinen Browser, danach müßte er auftauchen.
-
@martybr sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra
Ich schliesse mich hier mal an. Welche Rechte benötigt der Benutzeraccount oder muss er in einer bestimmten Gruppe? Sicherlich nicht in die Admin-Gruppe, oder doch?Nein keine Gruppe, einfach unter Benutzer einen Neuen anlegen
-
@nashra
Okay, das hat funktioniert. Ich konnte den Benutzer in der Rest.Api eintragen. -
@nashra sieht bei mir jetzt mal so aus.
mir ist aber nicht so wirklich klar, was ich in der .conf eintragen muss...
die IP vom ioB? port ist klar. das passwort vom woody? noch irgendeinen haken? -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
noch irgendeinen haken?
nö
die IP vom ioB?
yes
das passwort vom woody?
yes
-
@negalein ah eh...
wann kommst endlich mitm huberer daher? -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wann kommst endlich mitm huberer daher?
wenn der Huwawa mich tragen kann!
-
@negalein brauchst an black hawk...
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra sieht bei mir jetzt mal so aus.
mir ist aber nicht so wirklich klar, was ich in der .conf eintragen muss...
die IP vom ioB? port ist klar. das passwort vom woody? noch irgendeinen haken?Hab es genau wie Du.
-
@nashra du hast auch den user woody?
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra du hast auch den user woody?
Nö, meiner heißt Rest
Ok, doch nicht ganz wie deins -
@nashra danke, etwas Wartezeit und STRG + F5 hat geholfen
-
Moin @SBorg,
kann man die zwei DP "Wüstentage" und "Tropennächte" noch bei Rekordwerte mit aufnehmen -
Ist diese Script, speichern der täglichen Werte, eigentlich auch von dir?
const ZEITPLAN = '49 1 * * *'; let DP = "0_userdata.0.vis.Wetter"; let smonat = '0'; let jahr = 0; const WET_DP='javascript.0.Wetterstation'; let zeitstempel = new Date(); const monatsname = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']; const monatnummer = ['01', '02', '03', '04', '05','06','07','08','09','10','11','12']; schedule(ZEITPLAN, erstelleJSON); function erstelleJSON() { let start = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate()-1,0,0,0); start = new Date(start.getTime()); smonat = monatnummer[start.getMonth()]; jahr = start.getFullYear(); //ist Datum = 31.12 if (zeitstempel.getDate() == 31) { if (zeitstempel.getMonth() == 11) { createDP(); }; } else if(zeitstempel.getDate() == 1) { createDPMonat(zeitstempel); }; aktTage(); }; //JSON Tage async function aktTage() { let jsonTag = getState('0_userdata.0.vis.Wetter.Daten.' + jahr + '.TageMonat.' + smonat).val; let regen = getState('0_userdata.0.Statistik.Wetter.VorTag.Regenmenge').val; if (regen == null) {regen = 0}; let SonneTag = getState('javascript.0.Wetterstation.Info.Sonnenschein_VorTag').val; SonneTag = SonneTag / 60 ; if (jsonTag.length == 0) {jsonTag = '['}; jsonTag = jsonTag.replace("]",', '); jsonTag += JSON.stringify({ "Tiefstwert": getState('0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Tiefstwert').val, "Hoechstwert": getState('0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Hoechstwert').val, "Durchschnitt" : getState('0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Durchschnitt').val, "Max_Windboe": getState('0_userdata.0.Statistik.Wetter.VorTag.Windboe_max').val, "Regenmenge_Tag": regen, "Sonnenscheindauer": parseInt(SonneTag), "SonnenEnergie": getState('javascript.0.Wetterstation.Info.Solarenergie_VorTag').val, "Schneehoehe": 0}) + "]"; setState('0_userdata.0.vis.Wetter.Daten.' + jahr + '.TageMonat.' + smonat, jsonTag, true); }; async function createDP() { let tempJahr = jahr + 1; let dp = '0_userdata.0.vis.Wetter.Daten.' + tempJahr; createState(dp, { name: tempJahr, type: "folder" }); createState(dp + ".Monate", { name: 'Werte pro Monat', type: "folder" }); createState(dp + ".TageMonat", { name: 'Werte für jeden Tag im Monat', type: "folder" }); createState(dp +'.Monate.01', { name: "Januar", type: "json", role: "state"}); createState(dp +'.TageMonat.01', { name: "Januar", type: "json", role: "state"}); dp = '0_userdata.0.vis.Wetter.Daten.Jahre.' + tempJahr; createState(dp, { name: tempJahr, type: "json", role: "state"}); let text = tempJahr.toString() + ';' + getState('0_userdata.0.vis.Wetter.Auswahl_Jahre').val; setState('0_userdata.0.vis.Wetter.Auswahl_Jahre', text, true); await sleep(5000); }; async function createDPMonat(zeitstempel) { let dp = '0_userdata.0.vis.Wetter.Daten.' + jahr; let monat = zeitstempel.getMonth() + 1; let monatText = monatnummer[monat]; createState(dp +'.Monate.' + monatText, { name: monatsname[monat], type: "json", role: "state"}); createState(dp +'.TageMonat.' + monatText, { name: monatsname[monat], type: "json", role: "state"}); };