Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

HM-FAN
Beiträge: 20
Registriert: 11.05.2021, 08:16
System: CCU

Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von HM-FAN » 11.05.2021, 08:58

Hallo zusammen,

ich hoffe auf Eure Hilfe da ich trotz Recherche in diesem Forum noch nicht die Lösung gefunden habe.
Ich möchte mir gerne folgendes anzeigen lassen:
- Windgeschwindigkeit Maximum heute
- Uhrzeit Wind Maximum heute
- Windgeschwindigkeit Maximum gestern
- Uhrzeit Wind Maximum gestern

Entsprechende Variablen habe ich angelegt:
SV.png
Folgende zwei Programme mit folgenden Scripten ebenfalls:
Programm 1.png

Code: Alles auswählen

var source = dom.GetObject("$src$");
var maxTemp = dom.GetObject("Windgeschwindigkeit Maximum heute");
object maxTempDate = dom.GetObject("Uhrzeit Wind Maximum heute");
if (source)
{
if (source.Value() > maxTemp.Variable())
{
maxTemp.Variable(source.Value());maxTempDate.Variable(system.Date("%H:%M "))
}
}
else
{
var wds = dom.GetObject("Garagendach - Wetterstation HmIP-SWO-PR 00185BE9922B92:1");
var curTemp = wds.DPByHssDP("WIND_SPEED");
maxTemp.Variable(curTemp.Value());
}
Programm 2.png

Code: Alles auswählen

! Systemvariablen übernehmen
var maxheute= dom.GetObject("Uhrzeit Windgeschwindigkeit (max) heute");
var maxgestern= dom.GetObject("Uhrzeit Windgeschwindigkeit (max) gestern");


maxgestern.Variable(maxheute.Value());
dom.GetObject("Uhrzeit Windgeschwindigkeit (max) heute").State(0);
Leider sieht das Ergebnis sehr bescheiden aus und ich komme nicht weiter:
Startseite.png
Startseite.png (9.6 KiB) 951 mal betrachtet

Ich hoffe, dass mir ein kluger Kopf helfen kann.

Vielen Dank im voraus!
Zuletzt geändert von alchy am 11.05.2021, 18:53, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von MichaelN » 11.05.2021, 18:12

Als erstes fällt mir auf, das deine SV's in der WebUI anders heißen als im 2.Skript.
Dann fehlt im 1. Skript hinter system.Date("%H:%M ")) ein ;

Wie Du diesem Thread entnehmen kannst:
viewtopic.php?f=31&t=67597#p661365
ist die Verwendung von .Variable() durchaus nicht unproblematisch. Man sollte zumindest wissen was man tut.
Dort findest Du auch die korrekt(ere) Syntax um SV auszulesen und zu beschreiben.

Dann verstehe ich auch nicht, warum Du in Programm1 "Windgeschwindigkeit Maximum heute" mit "Windgeschwindigkeit Maximum heute" beschreibst.
Vor allem wo doch das Skript den Job schon machen soll?

In Programm 2 müsstest Du auch noch die Messwerte von heute nach gestern schreiben und "heute" auf Null setzen, nicht nur das Datum. Und warum das Datum auf 0 gesetzt wird, obwohl es eine TExt Variable ist???

Und das die Variablen im Programm ...temp... heißen, obwohl Windgeschwindigkeiten gespeichert werden dient der Verwirrung des geneigten Publikums? Und wofür ist der ELSE Zweig? Entweder enthält $src$ das richtige Objekt oder nicht. Aber es wird ja nicht mal so, mal so sein... Und wenn doch, warum wird dann in dem Fall nur der Messwert, aber nicht das Datum festgehalten?

ALso kurz gefasst: ich würde alles löschen und nochmal systematisch von vorne anfangen.

Und eine Bitte noch: Code bitte in CODE </> Tags posten
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

HM-FAN
Beiträge: 20
Registriert: 11.05.2021, 08:16
System: CCU

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von HM-FAN » 11.05.2021, 18:50

Hallo Michael,

zunächst vielen Dank für Deine Antwort!!
Ich habe auch sofort das, was ich ändern kann, geändert, jedoch sind meine Kenntnisse doch sehr begrenzt und bei manchen Deiner Kommentare muß ich leider passen.
Ich habe die Scripte aus einem anderen Beitrag aus diesem Forum kopiert und z.T. angepasst (viewtopic.php?f=71&t=65875). Leider bin ich inhaltlich noch nicht so weit zu verstehen, was dort bis ins Detail abgebildet wird.
Z.B. kann ich diesen Tipp von Dir leider nicht umsetzen, weil ich nicht weiß wie: In Programm 2 müsstest Du auch noch die Messwerte von heute nach gestern schreiben und "heute" auf Null setzen, nicht nur das Datum. Und warum das Datum auf 0 gesetzt wird, obwohl es eine TExt Variable ist???

Kurzum: Ich bin eigentlich momentan noch darauf angewiesen, ein quasi fertiges Script zu verwenden. Könntest Du mir bei diesen Scripten weiter behilflich sein?
Das ist der Stand:
SV.png
1. Programm:
Programm 1.png
1. Script:

Code: Alles auswählen

var source = dom.GetObject("$src$");
var maxTemp = dom.GetObject("Wind max heute");
object maxTempDate = dom.GetObject("Uhrzeit Wind max heute");
if (source)
{
if (source.Value() > maxTemp.Variable())
{
maxTemp.Variable(source.Value());maxTempDate.Variable(system.Date("%H:%M "));
}
}
2. Programm:
Programm 2.png
2. Script:

Code: Alles auswählen

! Systemvariablen übernehmen
var maxheute= dom.GetObject("Uhrzeit Wind max heute");
var maxgestern= dom.GetObject("Uhrzeit Wind max gestern");


maxgestern.Variable(maxheute.Value());
dom.GetObject("Uhrzeit Wind max heute").State(0);
Vielen Dank für Deine Unterstützung, Du hilfst mir sehr!

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von MichaelN » 11.05.2021, 19:33

Sorry, da hat über Jahre einer vom anderen angeschrieben, jeder mit noch etwas weniger Verständnis von der Materie und es immer weiter verschlimmbessert. Das pack ich nicht an.

Guck Dir mal das Original an, das hat zwar auch noch Optimierungspotential, aber scheint mir immer noch funktionsfähiger als die anderen Varianten:
viewtopic.php?f=26&t=12743#p96475

statt .Variable() benutze daher besser .State()
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

HM-FAN
Beiträge: 20
Registriert: 11.05.2021, 08:16
System: CCU

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von HM-FAN » 11.05.2021, 21:25

Hallo Michael,

den von Dir erwähnten Link kenne ich, damit dokumentiere ich meine Temperaturen. Und dieser Link ist auch die Basis für den Post, bei dem Du geschrieben hattest, dass die Materie verschlimmbessert wurde.
Allerdings schaffe ich es nicht, die Scripte auf meine Bedürfnisse anzupassen und es gibt auch meines Wissens keinen Beitrag im Forum, der es gepostet hat.

Kurz um, mit Windgeschwindigkeiten bekomme ich das nicht zum Laufen, meine aber, dass ich eigentlich kurz davor bin.
Vielleicht könntest Du Deine letzten Anmerkungen in meinen bereits geposteten Scripten einbauen und vielleicht funzt es dann ja, ich glaube, das würde auch einigen anderen helfen. :wink:

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von MichaelN » 11.05.2021, 22:27

Du musst doch nur deine Variablen Namen und Geräte Namen einsetzen und den Datenpunkt anpassen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

HM-FAN
Beiträge: 20
Registriert: 11.05.2021, 08:16
System: CCU

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von HM-FAN » 12.05.2021, 09:57

Hallo Michael,

ok, ich bau es nach und berichte. Danke!

Gruß

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von MichaelN » 12.05.2021, 13:11

Das ist wirklich nur Suchen & Ersetzen. Ich habe dazu noch den Code optimiert.

Programm1:

Code: Alles auswählen

! Systemvariablen auslesen
object maxWind = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Wind Maximum");
object timeMax = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Uhrzeit Maximum");

! Aktuelle Windgeschw
object wds = channels.Get("Wetterstation:1");
object curWind = wds.DPByHssDP("WIND_SPEED");

if (curWind.Value() > maxWind.Value())
 {
 maxWind.State(curWind.Value());
 timeMax.State(system.Date("%H:%M"));
 }

Programm2:

Code: Alles auswählen

! Systemvariablen
object maxWind = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Wind Maximum");
object timeMax = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Uhrzeit Maximum");
object maxGestern = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Wind Max Gestern");
object timeGestern = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Uhrzeit Gestern");

! Aktuelle Windgeschw
object wds = channels.Get("Wetterstation:1");
object curWind = wds.DPByHssDP("WIND_SPEED");

maxGestern.State(maxWind.Value());
timeGestern.State(timeMax.Value());
maxWind.State(curWind.Value());
timeMax.State(system.Date("%H:%M"));  
Du musst nur noch deine Variablennamen und den Kanalnamen zwischen den "" einsetzen.
Zuletzt geändert von MichaelN am 26.02.2022, 18:10, insgesamt 2-mal geändert.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

HM-FAN
Beiträge: 20
Registriert: 11.05.2021, 08:16
System: CCU

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von HM-FAN » 12.05.2021, 17:10

Hallo Michael,

vielen Dank für Deine Skripte! :D
Ich hab sie gleich umgesetzt - das Einzige, was derzeit noch nicht gefüllt wird, ist die Variable "Wind Uhrzeit max gestern".
Ich habe bereits das 2. Programm manuell gestartet aber immer noch die drei ???
Start.png
Start.png (7.67 KiB) 771 mal betrachtet
War das zu erwarten, wird diese Variable morgen erst gefüllt oder gibt es einen anderen Grund? Und warum füllt er die Variable "Wind max gestern" dann jetzt schon?
Eine weitere Geräteverknüpfung mit der Wetterstation in Programm 2 wie in dem Temperatur-Bsp. muß ich ja dank Deines Skripts nicht vornehmen, richtig (siehe Screenshot)?
sshot-1.png
sshot-1.png (9.22 KiB) 771 mal betrachtet
Gruß Volker

MichaelN
Beiträge: 9681
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Windgeschwindigkeit Min Max heute gestern ausweisen - Wetterstation Pro

Beitrag von MichaelN » 12.05.2021, 17:21

BItte einmal dein Skript hier in Code Tages reinsetzen
HM-FAN hat geschrieben:
12.05.2021, 17:10
Eine weitere Geräteverknüpfung mit der Wetterstation in Programm 2 wie in dem Temperatur-Bsp. muß ich ja dank Deines Skripts nicht vornehmen, richtig
Richtig
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

Zurück zu „HomeMatic allgemein“