KS 300 Kanaltyp auslesen (email addon)

KS 300, WS 300, Wetter Willi

Moderator: Co-Administratoren

Balisto
Beiträge: 25
Registriert: 14.03.2016, 09:11

KS 300 Kanaltyp auslesen (email addon)

Beitrag von Balisto » 14.03.2016, 21:47

Hallo zusammen,

ich suche etwas Hilfe um alle Kanäle des KS300 auszulesen.
Ich möchte die Wetterdaten auslesen und per email verschicken.

Momentan lassen sich aber nicht alle Daten auslesen... :?
Muss ich die Statistikwerte aus einer Datei auslesen?

Und..wie kann ich einen Datum und Zeitstempel schreiben?

Hier mal mein momentanes skript welches ich im email addon unter TCL stehen habe:

Code: Alles auswählen

load tclrega.so

array set values [rega_script {
! Werte aus Sensor einlesen
real v1 = dom.GetObject("CUxD.CUX3100001:1.TEMPERATURE").Value().ToString(1);
integer v2 = dom.GetObject("CUxD.CUX3100001:1.HUMIDITY").Value();
boolean v3 = dom.GetObject("CUxD.CUX3100001:1.RAINING").Value();
real v4 = dom.GetObject("CUxD.CUX3100001:1.RAIN_CTR").Value();
real v5 = dom.GetObject("CUxD.CUX3100001:1.WIND_SPEED").Value();
real v6 = dom.GetObject("CUxD.CUX3100001:1.DEW_POINT").Value();
real v7 = dom.GetObject("CUxD.CUX3100001:1.ABS_HUMIDITY").Value();
real v8 = dom.GetObject("CUxD.CUX3100001:1.TEMP_MIN_24H").Value();
real v9 = dom.GetObject("CUxD.CUX3100001:1.TEMP_MAX_24H").Value();
real v10 = dom.GetObject("CUxD.CUX3100001:1.HUM_MIN_24H").Value();
real v11 = dom.GetObject("CUxD.CUX3100001:1.HUM_MAX_24H").Value();
real v12 = dom.GetObject("CUxD.CUX3100001:1.WIND_MAX_24H").Value();
real v13 = dom.GetObject("CUxD.CUX3100001:1.RAIN_CTR_24H").Value();

! Werte in SV schreiben
dom.GetObject("Temperatur").State(v1);
dom.GetObject("rel.Feuchte").State(v2);
dom.GetObject("sofortige Regenerkennung").State(v3);
dom.GetObject("Regenmenge Absolutwert").State(v4);
dom.GetObject("Windgeschwindigkeit").State(v5);
dom.GetObject("Taupunkt").State(v6);
dom.GetObject("Absolute Luftfeuchte").State(v7);
dom.GetObject("min. Temperatur 24h").State(v8);
dom.GetObject("max. Temperatur 24h").State(v9);
dom.GetObject("min. Luftfeuchte 24h").State(v10);
dom.GetObject("max. Luftfeuchte 24h").State(v11);
dom.GetObject("max. Windgeschwindigkeit 24h").State(v12);
dom.GetObject("Regenmenge 24h").State(v13);
} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set v4 $values(v4)
set v5 $values(v5)
set v6 $values(v6)
set v7 $values(v7)
set v8 $values(v8)
set v9 $values(v9)
set v10 $values(v10)
set v11 $values(v11)
set v12 $values(v12)
set v13 $values(v13)
Meine Momentane email sieht so aus:
Dateianhänge
Bildschirmfoto 2016-03-14 um 20.45.35.png
So sehen die Daten momentan in meiner email aus
Bildschirmfoto 2016-03-14 um 20.45.35.png (39.73 KiB) 4021 mal betrachtet
Zuletzt geändert von alchy am 16.03.2016, 22:48, insgesamt 1-mal geändert.
Grund: Code bitte in Codetags einfügen

alchy
Beiträge: 7309
Registriert: 24.02.2011, 02:34

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von alchy » 15.03.2016, 11:23

Welche Addon Version?

Bitte als erstes den Datenpunkt v4 überprüfen, gibt es diesen?
im Executer / Script testen:

Code: Alles auswählen

real v4 = dom.GetObject("CUxD.CUX3100001:1.RAIN_CTR").Value();
WriteLine(v4);
Zeitstempel von was ?

Code: Alles auswählen

set Datum [clock format [clock seconds] -format "%d.%m.%Y  %H:%M"]
z.B. an den Anfang des TCL Reiters geschrieben, füllt dir den Platzhalter $Datum mit dem zur Zeit der Ausführung gültigen Zeitstempel.

...


Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Balisto
Beiträge: 25
Registriert: 14.03.2016, 09:11

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von Balisto » 16.03.2016, 21:10

Hallo Alchy,

vielen Dank schonmal :D

mit dem Datum, das funktioniert super. Genau so was wollte ich haben. Super.

HomeMatic E-Mail Zusatzsoftware
Version: 1.6.3

Aber mit dem Datenpunkt v4 tut sich nichts...:-(

fällt Dir da evtl noch was zu ein wie man die restlichen Kanäle auslesen kann?

MfG
Thomas
Dateianhänge
Bildschirmfoto 2016-03-16 um 20.08.01.png

alchy
Beiträge: 7309
Registriert: 24.02.2011, 02:34

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von alchy » 16.03.2016, 21:47

Wenn sich mit dem Schnipsel:

Code: Alles auswählen

real v4 = dom.GetObject("CUxD.CUX3100001:1.RAIN_CTR").Value();
WriteLine(v4);

nix tut, ist der Datenpunkt eben falsch, deshalb ja die Nachfrage danach. :mrgreen:
Stimmt denn defintiv die Gerätenummer?


Versuch mal so in Script testen oder Script Executer (was benutzt du?):

Code: Alles auswählen

real v5 = dom.GetObject("KS300:1").DPByHssDP("RAIN_CTR").Value();
WriteLine(v5);
Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Balisto
Beiträge: 25
Registriert: 14.03.2016, 09:11

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von Balisto » 16.03.2016, 21:56

Nein, dat tut sich leider auch nichts...:-(

in der WebUI kommt aber alles an. siehe Bild Anhang.

hm...mist...aber wie liest man sowas aus....

Laut der Beschreibung sollten die weiteren Kanäle doch genau wie Temperatur funktionieren.
Dachte ich zumindest :-) :-)

Thomas
Dateianhänge
Bildschirmfoto 2016-03-16 um 20.53.19.png

alchy
Beiträge: 7309
Registriert: 24.02.2011, 02:34

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von alchy » 16.03.2016, 22:11

ICh frage ungern nach. :evil:

Script testen oder Script Executer (was benutzt du?):

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Balisto
Beiträge: 25
Registriert: 14.03.2016, 09:11

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von Balisto » 16.03.2016, 22:13

skript testen habe ich probiert

thomas

alchy
Beiträge: 7309
Registriert: 24.02.2011, 02:34

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von alchy » 16.03.2016, 22:43

Ich habe nur ein, zumindest meiner Meinung, vergleichbares" Cuxd Gerät mit der Serial CUX9001001

Sieht dann in der WebGUI so aus:
cuxd_garagentor.jpg
Und egal was ich verwende:

Code: Alles auswählen

var out2 = dom.GetObject("CUxD.CUX9001001:1.SWITCH_SUM").Value();
WriteLine(out2);
oder

Code: Alles auswählen

real out = dom.GetObject("CUXDGaragentor:1").DPByHssDP("SWITCH_SUM").Value();
WriteLine(out);
ich erhalte da jeweils die passende Ausgabe.

Code: Alles auswählen

132.000000
Geht natürlich auch mit anderen Datenpunkten meines Gerätes.
Mag sein das ich mich irre, und mein CUXD Gerät kann nicht mit deinem verglichen werden.
Ich wollte nur helfen. :cry:

Vielleicht meldet sich Uwe, wenn er auf den Thread stößt.

[EDIT]
In deinem 2. Anhang heisst der Kanal nicht mehr KS300:1 Sondern Wetterstation aussen:1
Um welches Teil geht es dir denn nun eigentlich?
[/EDIT}

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Balisto
Beiträge: 25
Registriert: 14.03.2016, 09:11

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von Balisto » 18.03.2016, 21:29

Son mist... dachte ich könnte die Kanäle mit DEVICE PARAM EVALUATOR auslesen.
Aber es gibt keine CUX Geräte und auch kein HM-WDS100-C6-O.
Schade...bin also immer noch nicht weiter gekommen. :roll:

oh oh oh oh oh oh oh oh
Ich hab da was..... oh man ich könnte ausflippen.
Mir ist da ein Gedanken gekommen.....:-) :-) :-)
aber ich brauche deine Hilfe bitte :-)
oh wie cool....
sorry bekomme mich nicht ein :-)

Also, eigentlich glaube ich ganz logisch...das beschriebene array ist zu klein...richtig?
Ich habe einfach mal den Kanal DEW_POINT nach oben geschoben und die TEPERATUR
nach unten. Sprich in meinem Skript v1 mit v6 getauscht.
(warum ich es in skript testen nicht erkennen konnte weiß ich noch nicht.. kenne mich da leider noch nicht so aus)
Aber nun funktioniert der Kanal auch. Also vermute ich, dass es oben am Anfang Probleme gibt
wo das array beschrieben wird.. array set values [rega_script {
Aber wie kann man das lösen?
Oder wie muss ich es richtig schreiben?

Wie man im komenden Skript dann sieht, funktionieren dann auch beide Schreibweisen.

hier mein TCL Skript

Code: Alles auswählen

load tclrega.so

set Datum [clock format [clock seconds] -format "%d.%m.%Y  %H:%M"]

array set values [rega_script {
! Werte aus Sensor einlesen
integer v1 = dom.GetObject("CUXWetterstation:1").DPByHssDP("DEW_POINT").Value();
integer v2 = dom.GetObject("CUxD.CUX3100001:1.HUMIDITY").Value();
boolean v3 = dom.GetObject("CUxD.CUX3100001:1.RAINING").Value();
integer v4 = dom.GetObject("CUXWetterstation:1").DPByHssDP("Regenmenge").Value();
real v5 = dom.GetObject("CUxD.CUX3100001:1.WIND_SPEED").Value().ToString(1);
real v6 = dom.GetObject("CUxD.CUX3100001:1.TEMPERATURE").Value().ToString(1);
real v7 = dom.GetObject("CUxD.CUX3100001:1.ABS_HUMIDITY").Value().ToString(1);
real v8 = dom.GetObject("CUxD.CUX3100001:1.TEMP_MIN_24H").Value().ToString(1);
integer v9 = dom.GetObject("CUxD.CUX3100001:1.TEMP_MAX_24H").Value().ToString(1);
real v10 = dom.GetObject("CUxD.CUX3100001:1.HUM_MIN_24H").Value().ToString(1);
real v11 = dom.GetObject("CUxD.CUX3100001:1.HUM_MAX_24H").Value().ToString(1);
real v12 = dom.GetObject("CUxD.CUX3100001:1.WIND_MAX_24H").Value().ToString(1);
real v13 = dom.GetObject("CUxD.CUX3100001:1.RAIN_CTR_24H").Value().ToString(1);

! Werte in SV schreiben

dom.GetObject("DEW_POINT").State(v1);
dom.GetObject("rel.Feuchte").State(v2);
dom.GetObject("sofortige Regenerkennung").State(v3);
dom.GetObject("Regenmenge Absolutwert").State(v4);
dom.GetObject("Windgeschwindigkeit").State(v5);
dom.GetObject("Temperatur").State(v6);
dom.GetObject("Absolute Luftfeuchte").State(v7);
dom.GetObject("min. Temperatur 24h").State(v8);
dom.GetObject("max. Temperatur 24h").State(v9);
dom.GetObject("min. Luftfeuchte 24h").State(v10);
dom.GetObject("max. Luftfeuchte 24h").State(v11);
dom.GetObject("max. Windgeschwindigkeit 24h").State(v12);
dom.GetObject("Regenmenge 24h").State(v13);

} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set v4 $values(v4)
set v5 $values(v5)
set v6 $values(v6)
set v7 $values(v7)
set v8 $values(v8)
set v9 $values(v9)
set v10 $values(v10)
set v11 $values(v11)
set v12 $values(v12)
set v13 $values(v13)
und hier mal die Mail die ich Momentan bekomme:
Dateianhänge
Bildschirmfoto 2016-03-18 um 20.18.06.png
Bildschirmfoto 2016-03-18 um 20.18.06.png (43.63 KiB) 3839 mal betrachtet

alchy
Beiträge: 7309
Registriert: 24.02.2011, 02:34

Re: KS 300 Kanaltyp auslesen (email addon)

Beitrag von alchy » 18.03.2016, 22:30

Balisto hat geschrieben:Son mist... dachte ich könnte die Kanäle mit DEVICE PARAM EVALUATOR auslesen.
Aber es gibt keine CUX Geräte und auch kein HM-WDS100-C6-O.
Schade...bin also immer noch nicht weiter gekommen. :roll:

oh oh oh oh oh oh oh oh
Ich hab da was..... oh man ich könnte ausflippen.
Mir ist da ein Gedanken gekommen.....:-) :-) :-)
aber ich brauche deine Hilfe bitte :-)
oh wie cool....
sorry bekomme mich nicht ein :-)
Egal was du nimmst, es ist zuviel davon :shock: oder gib wenigstens was ab. :mrgreen:

Vorab: Ich habe die Vesion 1.6.3 noch nicht in Benutzung, ich bin noch auch 1.6.0 des Addons.

Das muss in Script testen so funktionieren, wie ich oben schrieb.
Ich weiß nichtm was du so treibst oder meinst. Ich habe locker mehr Variablen im TCL Reiter in Verwendung

Zusammengefasst:

Code: Alles auswählen

set Datum [clock format [clock seconds] -format "%d.%m.%Y  %H:%M"]
load tclrega.so
array set values [rega_script {

var v1 = dom.GetObject("CUXWetterstation:1").DPByHssDP("DEW_POINT").Value();
var v2 = dom.GetObject("CUxD.CUX3100001:1.HUMIDITY").Value();
var v3 = dom.GetObject("CUxD.CUX3100001:1.RAINING").Value();

} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)

Fang mal klein an und erweitere das Script auf der Basis.
Und was ich gerade erst gesehen habe, nimm das Speichern in Systemvariablen mal raus, wozu machst du das da?

und noch nebenbei:
z.B. real v6... passt irgendwie nicht mit .ToString(1) zusammen.
Verwende dann var v6 und lass es die CCU entscheiden :wink:

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „ELV Wettersensoren / Wetterstationen“