HM-Script für virtuelle Wetterstation

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

mskrause
Beiträge: 167
Registriert: 13.10.2018, 20:02
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 13 Mal
Danksagung erhalten: 19 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von mskrause » 09.05.2020, 13:11

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

nils50122
Beiträge: 23
Registriert: 12.09.2019, 08:30
Hat sich bedankt: 8 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von nils50122 » 18.05.2020, 14:03

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?

Xel66
Beiträge: 14162
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Xel66 » 18.05.2020, 14:47

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
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

nils50122
Beiträge: 23
Registriert: 12.09.2019, 08:30
Hat sich bedankt: 8 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von nils50122 » 21.05.2020, 12:27

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?

Xel66
Beiträge: 14162
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Xel66 » 21.05.2020, 21:09

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
Dateianhänge
Heizperiode.jpg
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

BF0911
Beiträge: 59
Registriert: 08.04.2018, 11:10

Re: HM-Script für virtuelle Wetterstation

Beitrag von BF0911 » 25.05.2020, 08:55

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?
Zuletzt geändert von alchy am 25.05.2020, 19:05, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

luPaN
Beiträge: 8
Registriert: 08.05.2020, 19:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wetzlar

Re: HM-Script für virtuelle Wetterstation

Beitrag von luPaN » 27.05.2020, 06:14

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 ...

Xel66
Beiträge: 14162
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Xel66 » 27.05.2020, 10:28

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
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

luPaN
Beiträge: 8
Registriert: 08.05.2020, 19:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wetzlar

Re: HM-Script für virtuelle Wetterstation

Beitrag von luPaN » 27.05.2020, 13:56

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 ?

Benutzeravatar
Baxxy
Beiträge: 10816
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2223 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Baxxy » 27.05.2020, 14:04

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

Antworten

Zurück zu „Projektvorstellungen“