Thingspeak-Daten in Homematic Variablen schreiben

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
21554
Beiträge: 7
Registriert: 30.06.2017, 20:38

Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von 21554 » 30.06.2017, 21:00

Hallo Zusammen,

Ich möchte gerne die Daten, die ich auf https://thingspeak.com/ habe, in Variablen auf der HM schreiben.

Ist sowas möglich, wenn ja, könnt ihr mir Tipps oder Beispiele zeigen?

An die Daten von thingspeak bekommt man wie folgt:

https://api.thingspeak.com/channels/cha ... &results=1

Gibt folgende Ausgaben:

Code: Alles auswählen

<feed>
<created-at type="dateTime">2017-06-29T18:02:18Z</created-at>
<entry-id type="integer">154</entry-id>
<field1>23.1</field1>
<field2>22</field1>
<field3>27.1</field1>
<field4>24.1</field1>
<field5>25.1</field1>
<field6>2</field1>
<field8>83</field1>
<id type="integer" nil="true"/>
</feed>

Die Werte in field1-8 "23.1" "22" "27.1" "24.1" "25.1" "2" "83" möchte ich in 8 verschiedene Variablen schreiben.

Danke für euer Hilfe.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von alchy » 01.07.2017, 13:10

Wenn ich mich nicht verzählt habe, solltest du hiermit deine Werte angezeigt bekommen.

Code: Alles auswählen

var url = "https://api.thingspeak.com/channels/<CHANNEL_ID>/feeds.json?api_key=<API_KEY>&results=2";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget --no-check-certificate --auth-no-challenge -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
string x;
integer count = 0;
foreach(x, srueck.Split(",")) {
count = count+1;
if ( (count >= 6) && (count <= 14) ){
string name = x.StrValueByIndex(":",0);
string wert = x.StrValueByIndex(":",1);
WriteLine(name #" hat den Wert " #wert);
}}


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

21554
Beiträge: 7
Registriert: 30.06.2017, 20:38

Re: Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von 21554 » 01.07.2017, 17:07

Hallo alchy,

Vielen Dank für deine Hilfe.

Du musst mir wohl noch ein wenig weiter helfen.

Welche Variablen (Name) muss ich dazu erstellen, damit das Skript die Werte einfüllen kann?

Muss ich sonst noch was an dem Skript anpassen? (ausser natürlich die Channel_ID und den API Key in der URL)

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von alchy » 01.07.2017, 23:24

Das weiß ich nicht, da du mir ja nicht schreibst, ob es überhaupt funktioniert. :shock:
  • Script nehmen
  • nach Script testen / Script executer kopieren
  • eigenen Daten für Channel_ID und den API Key eintragen
  • ausführen
  • Rückgabe posten

Handelt es sich bei den Werten immer um Werte, die du in Zahlenvariablen schreiben willst :?:
Gibt es bei der Namensvergabe ein bestimmtes System :?: , also z.B. ein Präfix"Temperatur1 Temperatur2 Temperatur3..." oder ziehst du es vor
jede Variable einzeln benennen zu wollen "Aussentemperatur Bierglasfüllstand Lustlevel ...."

Alchy

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

21554
Beiträge: 7
Registriert: 30.06.2017, 20:38

Re: Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von 21554 » 02.07.2017, 07:51

Handelt es sich bei den Werten immer um Werte, die du in Zahlenvariablen schreiben willst?

ja, ausser wenn ein Sensor "null" meldet, dann soll nichts in die entsprechende Variable geschrieben werden.

Gibt es bei der Namensvergabe ein bestimmtes System :?: , also z.B. ein Präfix"Temperatur1 Temperatur2 Temperatur3..." oder ziehst du es vor
jede Variable einzeln benennen zu wollen "Aussentemperatur Bierglasfüllstand Lustlevel ...."

Ich möchte die Variablen wie folgt benennen: sensor1_wert, sensor2_wert, sensor3_wert, sensor4_wert, sensor5_wert, sensor6_wert, sensor8_wert

Die Ausgabe, im Browser mit der URL im Script, ergibt die folgende Ausgabe:

{"created_at":"2017-07-01T05:37:23Z","entry_id":208,"field1":"21.9","field2":null,"field3":"3","field4":"25.8","field5":"30.5","field6":"15","field8":"24.2"}

Das Folgende Script, mit meiner URL:

Code: Alles auswählen

var url = "https://api.thingspeak.com/channels/<CHANNEL_ID>/feeds/last.txt?api_key=<API_KEY>";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget --no-check-certificate --auth-no-challenge -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
string x;
integer count = 0;
foreach(x, srueck.Split(",")) {
count = count+1;
if ( (count >= 3) && (count <= 14) ){
string name = x.StrValueByIndex(":",0);
string wert = x.StrValueByIndex(":",1);
WriteLine(name #" hat den Wert " #wert);
}}
Ergibt die folgende Ausgabe:

Code: Alles auswählen

"field1" hat den Wert "21.9"
"field2" hat den Wert null
"field3" hat den Wert "3"
"field4" hat den Wert "25.8"
"field5" hat den Wert "30.5"
"field6" hat den Wert "15"
"field8" hat den Wert "24.2"}
Ich brauche die Zahlen in 7 einzelnen Variablen, auser z.B. wenn Sensor2 (field2) den Wert null liefert, dann soll nichts in die entsprechende Variable geschrieben werden.

21554
Beiträge: 7
Registriert: 30.06.2017, 20:38

Re: Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von 21554 » 02.07.2017, 22:01

Hallo alchy,

Ich kann die gewünschten Werte jetzt in Variablen schreiben.
Die Datenquelle ist jetzt direkt vom Gerät mit den Sensoren und nicht mehr per Thingspeak.

Vielen Dank für deine Inputs.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Thingspeak-Daten in Homematic Variablen schreiben

Beitrag von alchy » 03.07.2017, 10:06

Sorry, war nicht online um hier zu antworten.
21554 hat geschrieben: Die Datenquelle ist jetzt direkt vom Gerät mit den Sensoren und nicht mehr per Thingspeak.
das ist natürlich die bessere Wahl :!:
obwohl natürlich auch der Weg über Thinkspeak geht.

Alchy

Blacklist................... almost 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 „CUxD“