Seite 21 von 38

Re: HM-Script für virtuelle Wetterstation

Verfasst: 09.05.2020, 13:11
von mskrause
Baxxy hat geschrieben:
09.05.2020, 10:59
Vielleicht kann das wer gebrauchen.
Grüße
Baxxy
da will ich Dich nicht enttäuschen, so kann ich auch gleich ein wenig aufräumen...
Baxxy hat geschrieben:
09.05.2020, 10:59
Desweiteren wird die SV OpenWeatherMap Windgeschwindigkeit jetzt in km/h angelegt und ausgegeben.
:D :D genau diese Änderung hatte ich dank rudimentärer Mathematik-Kenntnisse selbst in den vorangegangenen Scripts vorgenommen, ich kann bis heue m/s nicht wirklich einschätzen :roll:, hätte man mal auf die Autotachos draufmalen sollen ;)

Update: kurzes Feedback: Script läuft (fast) sauber durch, der Fehler in der SV Niederschlagsart ist zwar drin geblieben, lässt sich aber leicht korrigieren.
Entweder mit dem alchy-Trick (sorry ;)) - einfach SV einmal bearbeiten und speichern drücken oder im Script bei der SV-Deklaration eine Änderung vornehmen, dann klappt es auch sofort mit dieser SV.

Ähnlich wie alchy die anderen SV geändert hat:

Code: Alles auswählen

!Schreiben von svNiederschlagsart
if(svNiederschlagsart)
{
	if (owNiederschlagsart=='rain'){owNiederschlagsart=1;}
	if (owNiederschlagsart=='snow'){owNiederschlagsart=2;}
	if (owNiederschlagsart=='no'){owNiederschlagsart=0;}

	svObject = dom.GetObject(svNiederschlagsart);
	if (!svObject){
		svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
		svObject = dom.CreateObject(OT_VARDP);
		svObjectlist.Add(svObject.ID());
		svObject.Name(svNiederschlagsart);
		svObject.ValueType(ivtString);
		svObject.ValueSubType(istEnum);
		svObject.ValueList("kein Niederschlag;Regen;Schnee");
		svObject.DPInfo("OpenWeatherMap - Niederschlagsart");
		svObject.ValueUnit("");
		svObject.State(owNiederschlagsart);
		svObject.Internal(false);
		svObject.Visible(true);
		dom.RTUpdate(0);
	} else {
		svObject.State(owNiederschlagsart);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svNiederschlagsart#';'#owNiederschlagsart);}
}

Code: Alles auswählen

!Schreiben von svNiederschlagsart
if(svNiederschlagsart)
{
	if (owNiederschlagsart=='rain'){owNiederschlagsart=1;}
	if (owNiederschlagsart=='snow'){owNiederschlagsart=2;}
	if (owNiederschlagsart=='no'){owNiederschlagsart=0;}

	svObject = dom.GetObject(svNiederschlagsart);
	if (!svObject){
		svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
		svObject = dom.CreateObject(OT_VARDP);
		svObjectlist.Add(svObject.ID());
		svObject.Name(svNiederschlagsart);
		svObject.ValueType(ivtInteger);
		svObject.ValueSubType(istEnum);
		svObject.ValueList("kein Niederschlag;Regen;Schnee");
		svObject.DPInfo("OpenWeatherMap - Niederschlagsart");
		svObject.ValueUnit("");
		svObject.State(owNiederschlagsart);
		svObject.Internal(false);
		svObject.Visible(true);
		dom.RTUpdate(0);
	} else {
		svObject.State(owNiederschlagsart);
	}
	if((cuxCMD)&&(useLOGIT)){dom.GetObject(cuxCMDName#'.LOGIT').State(svNiederschlagsart#';'#owNiederschlagsart);}
}
also svObject.ValueType(ivtString); in svObject.ValueType(ivtInteger);

und schon artet der Niederschlag sofort aus ;)

Gruß
Marco

Re: HM-Script für virtuelle Wetterstation

Verfasst: 18.05.2020, 14:03
von nils50122
Erst ein mal besten dank für dieses Super Script!

Ich habe das Script nun alle 20 Minuten bei mir laufen.

Mein Plan ist es, mit einer Systemvariable "Heizperiode" - Werte "Sommer oder "Winter" alle Heizkörperthermostate auf automatisch zu schalten, bei Winter und auszuschalten bei Sommer.(5 Grad).

Nun bräuchte ich nur noch Hilfe wie ich mit den Werten aus diesem Script die Werte "Sommer" oder "Winter" setze.
Dazu habe ich mir gedacht bei aktueller Außentemperatur über 21 Grad Variable sofort auf Sommer setzen (das ist noch easy).
Nun zum komplizierteren Teil:
Ich möchte gerne bei überschreiten der aktuellen Temperatur 17 Grad und zusätzlich überprüfen ob die letzten zwei Tage schauen ob es über 7 Grad waren, wenn beides zutrifft, dann Systemvariable auf "Sommer".

Wie realisiere ich die Überprüfung der letzten beiden Tage?

Re: HM-Script für virtuelle Wetterstation

Verfasst: 18.05.2020, 14:47
von Xel66
nils50122 hat geschrieben:
18.05.2020, 14:03
Wie realisiere ich die Überprüfung der letzten beiden Tage?
Ich habe genau für den gleichen Zweck bei mir das Min/Max-Scipt hier aus dem Forum von Anfang an laufen, welches mir die aktuellen Tages- und die Vortageswerte in entsprechende Systemvariablen schreibt. Ich löse die Variable "Heizperiode" FALSCH beim Überschreiten von 25°C an zwei aufeinander folgenden Tagen aus, wenn auch die Min-Temperatur nicht unter 7°C war. Weiterhin schalte ich die "Heizperiode" wieder auf WAHR, wenn an zwei Tagen die Minimaltemperatur kleiner 7°C (bei einer Maximaltemperatur von kleiner 20°C) war. Beim Unterschreiten von 5°C wird sofort auf WAHR geschaltet, damit die Heizung nicht noch einen Tag länger wartet. Mit diesen Werten fahre ich nun schon seit ein paar Jahren ganz gut. Diese Werte sind aber abhängig von der Bausubstanz und können im Einzelfall differieren. Da muss sowieso jeder seine eigenen Grenzwerte finden. Die 21°C haben bei mir bei unbeständiger Wetterlage in der Übergangszwit zu oft die Heizung unterdrückt und es wurde zu früh abgeschaltet. Unabhängig davon wird bei mir bei Tagestemperaturen von größer 15°C die Heizung ebenfalls unterdrückt. Hier senke ich aber nur die Sollwerte auf 18°C ab.

Zusätzlich kann ich das Programm noch durch Temperaturwahl am Wandthermostat manuell triggern. Bei einer Solltemperatur von größer 30°C im manuellen Betrie wird die Heizung aktiviert (Thermostate auf Automatikbetrieb) und bei einer Solltemperatur kleiner/gleich 5°C im Automatikbetrieb wird sie deaktiviert (Thermostate auf manuell 4.5°C = OFF). So muss ich für solche Vorgänge nicht die WebUI bemühen. Die Heiztherme folgt sowieso automatisch der Wärmeanforderung durch die Ventilstellung (>10%). Dort sind keine Eingriffe notwendig.

Gruß Xel66

Re: HM-Script für virtuelle Wetterstation

Verfasst: 21.05.2020, 12:27
von nils50122
Vielen Dank für deine ausführliche Antwort.

Das Min/Max-Script habe ich erfolgreich eingebunden.
Für Nachahmer eventuell wichtig, bei "virtueller Wetterstation" über CUxD und Skriptaktualisierung von OpenWeatherMap nutzt als "Objectname" die Seriennummer, also z.B. "CUxD.9000002:1".

@Xel66: Würdest du mir noch ein Screenshot deines Programmes zur Änderung der Heizperiode zu Verfügung stellen?

Re: HM-Script für virtuelle Wetterstation

Verfasst: 21.05.2020, 21:09
von Xel66
nils50122 hat geschrieben:
21.05.2020, 12:27
@Xel66: Würdest du mir noch ein Screenshot deines Programmes zur Änderung der Heizperiode zu Verfügung stellen?
Gern doch. Den manuellen Teil im WENN und ersten SONST WENN (Triggern durch Hoch- und Runterdrehen der Thermostate) habe ich mal abgeschnitten. Der ist sowieso individuell und sagt nicht viel aus. Die anderen Trigger für die automatische Umschaltung sind alle enthalten.

Gruß Xel66

Re: HM-Script für virtuelle Wetterstation

Verfasst: 25.05.2020, 08:55
von BF0911
Meine CCU3 ist letze Woche abgestürtzt und lies sich nur durch einen Re-Start wieder aktivieren.

Allerdings funktioniert seitdem das Skript für die WEtterdaten nicht mehr. Geänder habe ich nicht.

Folgender Fehler kommt:

Code: Alles auswählen

Error 1 at row 391 col 19 near ^)||(svWindRichtungInt))
{
	xmlStartTagLenght=0;xmlTagStart=0;xmlTagLength=0;xmlT
Parse following code failed:
!OpenWeather-CCU-Script, edited by regedit V1.2, 2019-08-31
!Verwendetes Original: DimMyPrp V1, 2017-02-15, edited by Schalterrei, 2018-07-25
Vielleicht kann mir jemand weiterhelfen?

Re: HM-Script für virtuelle Wetterstation

Verfasst: 27.05.2020, 06:14
von luPaN
Servus und Hallo,

bin noch absoluter Neuling mit der CCU3, gerade erst vor einer Woche umgestiegen von dem AP.
Habe es soweit hinbekommen, das alles wieder funktioniert auch schon mit etlichen Erweiterungen. Wahrscheinlich für Euch eine ganz banale Frage, aber für mich noch nicht... Wie lege ich die Variablen eigentlich an? Das heißt nicht, das ich nicht weiß, wie man man grubsätzlich Variablen anlegt, aber mit welchen Einstellungen? Text? Zahl ? Wert?
Danke die Antwort ...

Re: HM-Script für virtuelle Wetterstation

Verfasst: 27.05.2020, 10:28
von Xel66
luPaN hat geschrieben:
27.05.2020, 06:14
...aber mit welchen Einstellungen? Text? Zahl ? Wert?
Es kommt drauf an. Willst Du für Prüfungen in Programmen irgendwelche Status speichern (z.B. "anwesend" ja/nein), kann man das als Logikvariable machen. Werte, mit denen man z.B. rechnen oder auswerten will (Temperaturen etc.), speichert man natürlich als Zahl ab. Wertelisten sind für Mehrfachzustände zielführend, wenn man z.B. als Vergleich den Zustand eines Fensters abspeichern will (offen, gekippt, geschlossen). Und Strings (Text) benötigt man nur für Anzeigen und externe Informationen (Mail, Push etc.). Damit kann die CCU relativ wenig anfangen.

Aber solche Grundsatzthemen sind hier völlig off topic. Sowas gehört in einen separaten Thread.

Gruß Xel66

Re: HM-Script für virtuelle Wetterstation

Verfasst: 27.05.2020, 13:56
von luPaN
Danke für die Antwort, aber ich fühlte mich hier schon richtig. Ging mir ja um die virtuelle Wetterstation.
Hier dann z.B. auf die Temperaturvariable oder auch Windrichtung. Lege ich die als Text an oder als Zahl oder als Wert ?

Re: HM-Script für virtuelle Wetterstation

Verfasst: 27.05.2020, 14:04
von Baxxy
luPaN hat geschrieben:
27.05.2020, 13:56
Lege ich die als Text an oder als Zahl oder als Wert ?
Wenn du eine der letzten Versionen des Scipts nimmst (vollständige Version oder gekürzte Version) werden die Systemvariablem bei der ersten Ausführung / Test automatisch angelegt.
luPaN hat geschrieben:
27.05.2020, 13:56
Hier dann z.B. auf die Temperaturvariable oder auch Windrichtung. Lege ich die als Text an oder als Zahl oder als Wert ?
Hat doch Xel66 schon geschrieben. Temperatur = Zahl; Windrichtung = Text; Windrichtung (integer) = Zahl.

Grüße
Baxxy