Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Gibt es noch andere Widget-Anforderungen, die sinnvoll zum Plugin passen?
Bitte nicht die Wetter-Widgets aus der SmartVisu replizieren...
Die Bewässerungssteuerung, die aus dem irrigation-struct kommt hat folgendes Widget (rot eingerahmt, ein Klick auf die Zahnräder öffnet das Popup von oben, das gehört hier nat. zum Gewächshaus): Screenshot 2021-07-30 180734.png
OK, ich würde für Instanzen einfach nur mehrere Instanzen des gleichen Verzeichnisses machen. Ich habe alle Plugins nur einmal, entweder in meinem "Frickel"-Zustand oder eben aus dem offiziellen Release - daher ändert sich der Name des Plugins nicht.
So hatte ich das auch, bis ich mal aus Versehen ein "git update" gemacht habe und alle meine Änderungen weg waren. Seit dem lege ich meine "Eigenkreationen" in eigenen Ordnern an. Und Plugin-Name und Order identisch bzw entspricht der Name der Ordner.
Nein - das ist ein und die selbe Fehlermeldung für alle Fälle. Die Matchstrings sollten dann berichtigt werden. - klar es funktioniert, das ist der Sinn der gemachten Implementierung, weil man das mit der Liste gerne übersieht. Aber der korrekte Matchstring ist dann "alerts/0/event" und nicht "alerts/event". "alerts/0/..." ist jetzt auch immer gesetzt, d.h. man kann das Element auch wirklich in einem Item nutzen. Im struct sollten auch nur korrekte Matchstrings sein und nicht solche, die durch interne Korrekturen bereinigt werden.
der erste Wurf der structs ist fertig und diese hier zu finden.
Es gibt dort 3 Dateien:
A) Eine aktualisierte plugin.yaml für das owm_plugin. Dort sind die structs enthalten.
B) Eine Item-Datei, die diese structs nutzt und die Items so erstellt, wie es das darksky_struct gemacht hat. Das wäre also der "Konverter".
C) Eine Item-Datei, die ebenfalls diese structs (aber andere) nutzt und alle Informationen liefert, die die onecall-api von owm bereitstellt.
Könntest Du auch noch die air_pollution api ins Plugin integrieren?
Ich versuchs. Leider gibt's ja nicht nur die eine, sondern sowohl history als auch forecast. Als ich gerade mit der Implementierung angefangen habe, fiel mir auf, dass das für die mögliche Datenmenge komfortabel 6 weitere Calls sind, die jedes mal abgesetzt werden. Ich habe nur die freie Lizenz und daher nur 1000 Calls/Tag. Wenn SmartVisu Calls macht und meine Handy App Calls macht und SHNG so viele macht, kann das das Kontingent strapazieren. Braucht man alle diese Daten immer? Die Funktionalität vorsehen: Gerne! Alles immer in jedem struct haben? Weiß nicht...
Ich baue erstmal das Webinterface um, dass man auch wirklich alle abgerufenen JSONs anschauen kann. Das geht ja gerade nicht, weil es nur 6 Tabs gibt.
Noch eine Beobachtung aus den structs:
day-0 ist tatsächlich heute, nicht gestern. Es gibt zu heute als zwei relevante Datenmengen: Zukunft (day/0) und Vergangenheit (day/-0).
Code:
today_minus_1d:
instance: home
owm_match_prefix@home: day/-0
struct: _priv_openweathermap.historical_daily
Zuletzt geändert von jentz1986; 01.08.2021, 11:32.
Grund: Formatierung des YAML gefixt
Könntest Du auch noch die air_pollution api ins Plugin integrieren?
Ja, ist jetzt gemacht. Allerdings ist die API etwas seltsam. Über forecast bekommt man Werte von 6 Tage in die Vergangenheit bis 4 Tage in die Zukunft. Über history kann man Abfragezeiträume definieren - auch in die Zukunft.
Soll uns nicht weiter stören:
Code:
aqi_gestern_11:
type: num
owm_matchstring: airpollution/day/-1/hour/11/main/aqi
aqi_neulich:
type: num
owm_matchstring: airpollution/day/-4/hour/11/main/aqi
aqi_in_11h:
type: num
owm_matchstring: airpollution/hour/11/main/aqi
aqi_jetzt:
type: num
owm_matchstring: airpollution/main/aqi
airpollution/day/-x (kann 1 - 4 sein, weder 0 noch 5 und auch keine positiven Werte)
airpollution/hour/x kann nur in die Zukunft, dafür aber bis zu 3 Tage (eigentlich sogar vier, der vierte ist aber im Zweifel nicht da)
Das Web-Interface zeigt jetzt auch alle Datenquellen an und ist "etwas" wartbarer geworden...
Deshalb habe ich das struct auch erstmal so gestaltet, dass man mehr Möglichkeiten hat, SEINE Items zu definieren.
Das gefällt mir auch sehr gut! Im Zweifel (Wenig RAM, Wunsch nach wenigen Items) nutzt man die structs um rauszubekommen, was man so alles abfragen kann und pickt sich dann nur noch die relevanten Matchstrings über das Web-Interface raus. Bei genug Ressourcen ist das struct aber sicher sehr gut!
Ach ja, one more thing: Das mit dem @count von oben hatte ich implementiert - geht auch:
Code:
alerts_present:
type: num
owm_matchstring: alerts/@count
hours_present:
type: num
owm_matchstring: day/-0/hour/@count
Noch was:
Ein Weg sich die Alerts in der SmartVisu anzeigen zu lassen (wetter.alerts ist das Item vom type list das den Matchstring 'alerts' hat):
Das kann man ja dann auch mit dem alerts/@count verbinden und nur dann anzeigen lassen, wenn auch alerts da sind. Der @count geht auch auf 0 wenn nur das Placebo eingefügt wird.
Ich habe jetzt den Stand der plugin.yaml aus dem gist in meinen Fork gepackt und die README.md soweit auf Stand gebracht. Ab jetzt warte ich wieder demütig auf Feedback :-)
Guten Abend, erstmal danke für deine Arbeit. Trifft sich gut, da ich gerade eine Gartenbewässerung installiert habe
So nun aber zum Feedback: Die OWM Daten kommen rein. bzw kamen, da mein Account nun die maximalen Anfragen erreicht hat. Ich habe jetzt das Intervall mal auf 600s gesetzt. Mit dem "alten" OWM Plugin habe ich nie eine Mail bei 300s wegen Limitüberschreitung bekommen.
Zum: rain_overview-widget
In deiner Anleitung auf Github stimmen die Items nicht:
rain_past_12h (hier muss statt h = hrs hin) und die Bezeichnung im Widgetcode von Wetter.as_of (hier muss Weather.as.of hin)
So und nun zum wichtigen Teil: Das Irrigation Struct funktioniert bei mir weder mit den Originaldaten aus der Anleitung noch mit meinen eigenen. Er rechnet dort scheinbar immer 0 oder-0 aus.
Beim Widget ist mir aufgefallen, dass für mich die Litermenge als auch die Quadratmetermenge zu niedrig einstellbar ist. QM sind max 30 und Liter glaub ich 10
Ich hatte angedacht die Lösung für meine Rasenberegnung zu nutzen. Dafür habe ich je 2 Gardena OS 140 an einem Ventil, die laut Gardena bei 4 Bar jeweils bis 800L Wasser durchlassen. Die Flächen sind einmal 192m² und 42m².
In deiner Anleitung auf Github stimmen die Items nicht:
rain_past_12h (hier muss statt h = hrs hin) und die Bezeichnung im Widgetcode von Wetter.as_of (hier muss Weather.as.of hin)
So und nun zum wichtigen Teil: Das Irrigation Struct funktioniert bei mir weder mit den Originaldaten aus der Anleitung noch mit meinen eigenen. Er rechnet dort scheinbar immer 0 oder-0 aus.
In einer Version hatte ich im struct mal die Instanzzuordnung vergessen. Ist gefixt.
Ich hatte angedacht die Lösung für meine Rasenberegnung zu nutzen. Dafür habe ich je 2 Gardena OS 140 an einem Ventil, die laut Gardena bei 4 Bar jeweils bis 800L Wasser durchlassen. Die Flächen sind einmal 192m² und 42m².
Ich hab nur Tropfbewässerungen, aber klar, das macht so viel mehr Sinn. Da das ne reine Widget-Sache ist und Rasen wahrscheinlich das einzig Große ist, mache ich einfach ein weiteres Widget dazu, kommt demnächst. Solange kann einfach jeder im Plugin-Pfad das Widget entsprechend anpassen :-) Ist ja gerade eh nich so weit her mit Bewässerungsbedarf, das macht der große Automat da oben...
Ich habe nun doch eine neue struct „irrigation_weekly“ für Rasenbewässerung gemacht, ohne den ganzen Pflanzdichte-Kram, dafür aber mit nem wöchentlichen Gießraster. Nun wird vier Tage in die Vergangenheit und drei Tage in die Zukunft geschaut und danach bewässert. Vorher musste ich erstmal lernen, was das ist, dieser „Rasen“. Wir haben nur Wiese und die wächst/verbrennt ganz von alleine…
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar