Youless

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Youless

Beitrag von regalboot » 22.11.2014, 09:16

Moin moin
Ich habe mir einen Youless Monitor zugelegt. Funktioniert einwandfrei. Leider ist das App im Schweizer Store nicht verfügbar.
http://wiki.td-er.nl/index.php?title=YouLess
Aus diesem Grund möchte ich Ihn ins CCU-Historian einbinden.
Das Ding kann jason. Ich brächte einen EINPACKBEFEHL für die Homematic damit er im Historian angezeigt wird.

Ich gebe im Webbrowser folgendes ein: http://192.168.x.xx/V?h=1
Als Antwort erhallte ich :

Verbrauch (Watt)
08:05 756
08:06 744
08:07 744
08:08 744
08:09 744
08:10 612
usw bis 08:58

Ich denke der Weg geht ähnlich wie das Einbinden vom Wetterdienst.
Ich habe eine Variable erstellt : Name Stromverbrauch ...Zahl Wert ... Watt
Dann unter addons ein Ordner Stromverbrauch erstellt
Was nun fehlt ist das Script... und das kann ich nicht. Kann mir jemand helfen?

Mathias
Beiträge: 1791
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 260 Mal
Kontaktdaten:

Re: Youless

Beitrag von Mathias » 22.11.2014, 14:40

Du musst den benötigten Wert nur in eine Systemvariable bekommen, dann wird er vom CCU-Historian automatisch aufgezeichnet.

Nach einem kurzen Überfliegen der angegebenen Web-Seite hätte ich folgende Idee:
  • Systemvariable (Typ Zahl) anlegen
  • HomeMatic-Script erstellen, das zyklisch aufgerufen wird
  • Im Script mittels system.Exec wget aufrufen, um über HTTP den aktuellen Wert zu lesen und diesen dann in der Systemvariable zu speichern. Am besten nutzt Du das Plain Text-Format, dort kann der Zahlenwert am einfachsten heraus gefischt werden.
Das Forum sollte genügend Infos zur Verwendung von wget enthalten.

Gruß
Mathias

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Re: Youless

Beitrag von regalboot » 22.11.2014, 17:14

Punkt 1 und 2 hatte ich schon
ich kämpfe mit Punkt 3
Script.....

soweit bin ich aber komme nicht weiter
Ich habe ein Script aber ich weiss nicht was ich einsetzen soll anstelle von anwesend
ich erhallte ja eine 4 Stellige Zahl BSP 1590

string stderr;
string stdout;
string url="http://www.webseite.de/status.php?anwesenheit="
if (dom.GetObject("Anwesenheit").Variable())
{
url=url # "Anwesend";
}
else
{
url=url # "Abwesend";
}
system.Exec("wget -q -O - "#url, &stdout, &stderr);

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Re: Youless

Beitrag von regalboot » 23.11.2014, 08:28

string stdout;
string stderr;
system.Exec("wget -O /dev/null -q http://192.168.x.xx/V?h=1/status.html?)

Nur fehlt hier noch der variable befehl
Bzw der Rest..

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Re: Youless

Beitrag von regalboot » 24.11.2014, 20:36

hallo ?
Hat niemand eine Idee? Wer kann mir helfen beim schreiben des scriptes?

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: Youless

Beitrag von unlight » 25.11.2014, 17:14

Wenn du das ganze als Plain Text:
http://192.168.x.xx/a ausgibst bekommst du

Code: Alles auswählen

 4456,980 kWh
 457 Watt
 0%
 OK (13)
zurück.
Die Zeile die du brauchst kannst du ohne die Einheit so holen:

Code: Alles auswählen

wget http://192.168.x.xx/a -q -O - |grep kWh|sed s/\ kWh//|sed s/\,/\./|sed s/^\ //
holen.

Eingebettet in CuxD:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget http://192.168.x.x/a -q -O - |grep kWh|sed s/\ kWh//|sed s/\,/\./|sed s/^\ //");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var MEINEKILOWATTZAHL = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
Gruß
Unlight
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Re: Youless

Beitrag von regalboot » 26.11.2014, 20:55

Besten Dank für die Unterstützung.
Das Script hat noch einen kleinen Fehler. Das Dach (rot markiert) am Schluss musste ich löschen dass das script übernommen wurde.
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget http://192.168.x.x/a -q -O - |grep kWh|sed s/\ kWh//|sed s/\,/\./|sed s/^\ //");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var MEINEKILOWATTZAHL = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

Wie kann ich nun aus diesem Script eine Systemvariable erstellen?
Die Zahl wird angezeigt im Testmodus und auch im Testmodus ausgeführt.

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: Youless

Beitrag von unlight » 26.11.2014, 21:06

Auf meiner CCU2 gehts auch mit dem Dach.

In eine Variable schreiben kannst du es so:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget http://192.168.x.x/a -q -O - |grep kWh|sed s/\ kWh//|sed s/\,/\./|sed s/^\ //");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var MEINEKILOWATTZAHL = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dom.GetObject("Name der Variable").State(MEINEKILOWATTZAHL);
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Re: Youless

Beitrag von regalboot » 26.11.2014, 21:52

JAAAA Bingo

Jetzt klappt es SUPER

Ich bedanke mich sehr für Deine Hilfe :D :D :D :D

regalboot
Beiträge: 82
Registriert: 13.02.2013, 17:53
System: CCU
Wohnort: Schweiz

Re: Youless

Beitrag von regalboot » 08.01.2015, 19:23

Hallo zusammen. Es klappt alles wunderbar.
Habe jetzt ein bisschen weiterexperimentiert und 2 Variable und 2 Zeitprogramme geschrieben . 1 mal Hoch- und 1mal Niedertarif.
Mittels Zeitmodul Eingabe von : 00.00 -0700 und 20:00-00:00 ( NT ) und 07:00 bis 20:00 ( HT) - Intervall alle 30 min ( das reicht mir für Anzeige im Histaorian)
Das klappt für einen Tag.
Gibst eine Möglichkeut das auch auf eine Woche auszuweiten?
Beim Zeitmodul kann ich zwar dann Tage auswählen aber dann nicht mehr den Intervall
Unsere Zeiten für HT sind Mo-Fr 07:00 -20:00 und am Sa von 07:00 - 13:00 ( intervall alle 30 min)
Der Rest ist NT diro Intervall alle 30 min

Ich müsste 2 Zeitprogramme NACHEINANDER laufen lassen können. Zuerst die Tagesauswahl und wenn Tag und Zeit ok dann Zeitprogramm mit Intervall-

Geht dass überhaupt oder mache ich einen Denkfehler?

Antworten

Zurück zu „CCU-Historian“