Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

HMIP lokale Installation

Moderator: Co-Administratoren

Antworten
Marcolino1
Beiträge: 12
Registriert: 07.08.2018, 21:56

Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Marcolino1 » 07.08.2018, 22:15

Hallo zusammen.

habe mir die Wetterstation HmIP-SWO-PR zugelegt und möchte die Daten gerne weiter in Programmen verwenden. Da ich mit der Scriptprogrammierung erst begonnen habe, scheitere ich leider bei der Abfrage und Zuweisung der Daten der Wetterstation.
Leider finde ich nirgends für das Object der Wetterstation die richtigen Parameter für Temperatur, Feuchte, Windgeschwindigkeit usw. die standardmäßig die Wetterstation liefert.
Anbei das Script das ich geschrieben habe. Habe es mal auch mit dem Scrip Developer getestet. Die variable actTemp bringt immer den Wert 0

Kann mir bitte jemand helfen. Vielen dank

Code: Alles auswählen

!Temperaturvariablen setzen
var actTemp = dom.GetObject("HmIP-SWO-PR 00185709ACB06A:1.actualTemperature").Value();
var maxTemp = dom.GetObject("151 Außentemperatur Max Heute").Value();
var minTemp = dom.GetObject("153 Außentemperatur Min Heute").Value();
 
if (actTemp > maxTemp) 
{
dom.GetObject("151 Außentemperatur Max Heute").State(actTemp);
dom.GetObject("155 Außentemperatur Max Zeit Heute").State(system.Date("%H:%M "));
}
if (actTemp < minTemp) 
{
dom.GetObject("153 Außentemperatur Min Heute").State(actTemp);
dom.GetObject("157 Außentemperatur Min Zeit Heute").State(system.Date("%H:%M "));
}
Zuletzt geändert von alchy am 23.09.2019, 20:16, insgesamt 1-mal geändert.
Grund: verschoben aus HomeMatic IP Aktoren und Sensoren - Code in Codetags

Benutzeravatar
Roland M.
Beiträge: 9804
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1381 Mal

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Roland M. » 07.08.2018, 22:52

Hallo und willkommen im Forum!

Auch ich bin keineswegs Script-Spezialist, betrachten meine Aussage einmal unter dem Motto "Auch ein blindes Huhn trinkt mal einen Korn!" :D

Dein Script sieht auf den ersten Blick recht vernünftig aus, allerdings...
Marcolino1 hat geschrieben:
07.08.2018, 22:15
var actTemp = dom.GetObject("HmIP-SWO-PR 00185709ACB06A:1.actualTemperature").Value();
... ist diese Scriptsprache case sensitive, also unterscheidet zwischen Groß- und Kleinschreibung!
"actualTemperature" erscheint mir daher falsch, genauso wie die Leerzeichen, die auf einen Gerätenamen bzw. Kanalnamen schließen lassen.

Ich habe die HmIP-Geräte jetzt nicht im Kopf, aber als HM-Gerät würde die Abfrage innerhalb des dom.GetObject() etwa so aussehen:
"BidCosRF.MEQ1234567:1.ACTUAL_TEMPERATURE"
Also Protokoll, Punkt, Seriennummer, Doppelpunkt, Kanalnummer, Punkt, Datenpunkt.

Bitte lade dir von eq-3 (www.eq-3.de) unter Download (Suchkategorie Homematic, Download-Art Scripte) die vierteilige Scriptbeschreibung herunter, speziell im vierten Teil, "Datenpunkte", sind dann alle Einzelheiten aufgeführt.


Roland
(unterwegs, daher nur Hilfe zur Selbsthilfe... ;) )
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Marcolino1
Beiträge: 12
Registriert: 07.08.2018, 21:56

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Marcolino1 » 08.08.2018, 08:03

Hallo Roland,
vielen Dank für die Tipps.
Leider fehlt in der Datenpunktbeschreibung die Wetterstation Pro.
in meinem Script hat das Protokoll gefehlt und den Fehler mit der Artikelnummer hatte ich auch noch.
Mit BidCosRF Protokoll hatte ich keinen Erfolg.
Habe dann gesucht und die Abfrage für IP Protokoll gefunden.

Mit folgender Abfrage bin ich nun erfolgreich gewesen:

var actTemp = (datapoints.Get("HmIP-RF.00185709ACB06A:1.ACTUAL_TEMPERATURE")).Value();

VG und noch einmal Danke für die schnelle Antwort

x_HomematicFan_x
Beiträge: 2
Registriert: 27.03.2019, 11:15

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von x_HomematicFan_x » 27.03.2019, 11:25

Hallo zusammen,

ich versuche momentan genau dasselbe aber kenne mich leider noch nicht so gut aus (blutiger Anfänger).
Vielleicht kann mir jemand von euch helfen. Ich habe das Skript kopiert und meine Seriennummer ergänzt.

folgende Variablen habe ich angelegt:

actTemp -> Variablentyp Zahl
maxTemp -> Variablentyp Zahl
minTemp -> Variablentyp Zahl

Bedingung für das Programm ist eine Änderung der Ist-Temperatur der Wetterstation von -20° bis 50°C.

So sieht mein Skript momentan aus:

Code: Alles auswählen

!Temperaturvariablen setzen
var actTemp = (datapoints.Get("HmIP-RF.001858A992B866:1.ACTUAL_TEMPERATURE")).Value();
var maxTemp = dom.GetObject("151 Außentemperatur Max Heute").Value();
var minTemp = dom.GetObject("153 Außentemperatur Min Heute").Value();

if (actTemp > maxTemp) 
{
dom.GetObject("151 Außentemperatur Max Heute").State(actTemp);
dom.GetObject("155 Außentemperatur Max Zeit Heute").State(system.Date("%H:%M "));
}
if (actTemp < minTemp) 
{
dom.GetObject("153 Außentemperatur Min Heute").State(actTemp);
dom.GetObject("157 Außentemperatur Min Zeit Heute").State(system.Date("%H:%M "));
}
meine Variablen stehen aber seit der Erstellung fleißig auf -20°C

was mache ich falsch? --> ist bestimmt offensichtlich.

Danke im Voraus

Gruß
HomematicFan
Zuletzt geändert von Roland M. am 27.03.2019, 13:00, insgesamt 1-mal geändert.
Grund: Code-Tags eingefügt

Benutzeravatar
Roland M.
Beiträge: 9804
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1381 Mal

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Roland M. » 27.03.2019, 12:59

Hallo und willkommen im Forum!

Bitte immer Screenshots der Programme hier einstellen, nur so kann sinnvoll geholfen werden, da bei "Nacherzählungen" meist kleine, aber wichtige Details übersehen werden.
x_HomematicFan_x hat geschrieben:
27.03.2019, 11:25
Bedingung für das Programm ist eine Änderung der Ist-Temperatur der Wetterstation von -20° bis 50°C.
Ich vermute - siehe oben - dass du "Ausführen bei Änderung" ausgewählt hast. Dies ist in diesem (Ausnahme-) Falle falsch, eine Änderung der Bedingung tritt erst bei Unterschreiten von -20°C bzw. einem Überschreiten von 50°C ein.
Also umstellen auf "auslösen bei Aktualisierung".

Hilfreich sind auch die Tipps für Anfänger -> viewtopic.php?f=1&t=22801
Hier wird auch die Programmlogik beschrieben.


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

x_HomematicFan_x
Beiträge: 2
Registriert: 27.03.2019, 11:15

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von x_HomematicFan_x » 27.03.2019, 13:32

Hallo Roland,

danke für die schnelle Antwort, das umstellen auf "bei Aktualisierung auslösen" war wohl nicht der einzigste Fehler.

Die Bilder des Programms und der Variablen im Anhang.

Danke im Voraus

Gruß
HomematicFan
Dateianhänge
Unbenannt2.png
Unbenannt2.png (9.36 KiB) 5725 mal betrachtet
Unbenannt1.png
Unbenannt.png

Benutzeravatar
Challenger
Beiträge: 526
Registriert: 09.11.2015, 10:58
Wohnort: Hannover
Hat sich bedankt: 20 Mal
Danksagung erhalten: 25 Mal

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Challenger » 20.09.2019, 15:57

Hi,
ich habe das mit einem anderen Script umgesetzt:

Code: Alles auswählen

var source = dom.GetObject("$src$");
var maxTemp = dom.GetObject("Wetter max Temp heute");
var minTemp = dom.GetObject("Wetter min Temp heute");

if (source)
{
 if (source.Value() > maxTemp.Variable())
 {
 maxTemp.Variable(source.Value());
 }
}
if (source)
{
 if (source.Value() < minTemp.Variable())
 {
 minTemp.Variable(source.Value());
 }
}

else
{
 var wds = dom.GetObject("HmIP-SWO-B 0017D8AXXXXXX:3");
 var curTemp = wds.DPByHssDP("TEMPERATURE");
 maxTemp.Variable(curTemp.Value());
}

Nutze nur zwei Variablen: min Temperatur und max Temperatur
Die lasse ich per Programm 1 Nachts zurücksetzen.
screenshot.27.png
screenshot.27.png (6.26 KiB) 5043 mal betrachtet


VG
Meist ist man ja nicht zu alt, sondern zu faul für den Scheiß.

BTW: Keine persönliche Betreuung per PN. Fragen zu Thread-Themen bitte für Alle im Thread stellen. Dankööö!
21Million 1n73ll1g3nc3 15 7h3 4b1l17y 70 4d4p7 70 ch4ng3 - 573ph3n h4wk1ng

Jan_Stfbg
Beiträge: 54
Registriert: 05.05.2019, 08:41
System: CCU
Wohnort: 35460
Hat sich bedankt: 17 Mal

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Jan_Stfbg » 05.09.2020, 12:21

Challenger hat geschrieben:
20.09.2019, 15:57
Hi,
ich habe das mit einem anderen Script umgesetzt:

Code: Alles auswählen

var source = dom.GetObject("$src$");
var maxTemp = dom.GetObject("Wetter max Temp heute");
var minTemp = dom.GetObject("Wetter min Temp heute");

if (source)
{
 if (source.Value() > maxTemp.Variable())
 {
 maxTemp.Variable(source.Value());
 }
}
if (source)
{
 if (source.Value() < minTemp.Variable())
 {
 minTemp.Variable(source.Value());
 }
}

else
{
 var wds = dom.GetObject("HmIP-SWO-B 0017D8AXXXXXX:3");
 var curTemp = wds.DPByHssDP("TEMPERATURE");
 maxTemp.Variable(curTemp.Value());
}

Nutze nur zwei Variablen: min Temperatur und max Temperatur
Die lasse ich per Programm 1 Nachts zurücksetzen.

screenshot.27.png



VG
Kannst DU das Programm auch nochmal zeigen bitte?
Dankeschön.

Jan_Stfbg
Beiträge: 54
Registriert: 05.05.2019, 08:41
System: CCU
Wohnort: 35460
Hat sich bedankt: 17 Mal

Re: Wetterstation HmIP-SWO-PR Messwerte in eigene Variablen schreiben

Beitrag von Jan_Stfbg » 05.09.2020, 15:26

Jan_Stfbg hat geschrieben:
05.09.2020, 12:21
Challenger hat geschrieben:
20.09.2019, 15:57
Hi,
ich habe das mit einem anderen Script umgesetzt:

Code: Alles auswählen

var source = dom.GetObject("$src$");
var maxTemp = dom.GetObject("Wetter max Temp heute");
var minTemp = dom.GetObject("Wetter min Temp heute");

if (source)
{
 if (source.Value() > maxTemp.Variable())
 {
 maxTemp.Variable(source.Value());
 }
}
if (source)
{
 if (source.Value() < minTemp.Variable())
 {
 minTemp.Variable(source.Value());
 }
}

else
{
 var wds = dom.GetObject("HmIP-SWO-B 0017D8AXXXXXX:3");
 var curTemp = wds.DPByHssDP("TEMPERATURE");
 maxTemp.Variable(curTemp.Value());
}

Nutze nur zwei Variablen: min Temperatur und max Temperatur
Die lasse ich per Programm 1 Nachts zurücksetzen.

screenshot.27.png



VG
Kannst DU das Programm auch nochmal zeigen bitte?
Dankeschön.
Bei mir sieht die Übersicht so aus, wo man erkennt, dass nicht alle Werte eingetragen werden, trotz dass bei Temp min/max das Script eins zu eins übernommen wurde, außer der Anpassung der Wettertstation.
Übersicht ohne alle aktualisierten Werte.png
Hier das Programm dazu.
2020-09-05 15_21_40-Window.png
Kann mir jemand nen Tipp geben, woran es liegen kann?
Dankeschön.

Antworten

Zurück zu „HomeMatic IP mit CCU“