Solarlog Werte in Homematic Variable speichern

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

tomweb
Beiträge: 29
Registriert: 12.08.2014, 10:40

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von tomweb » 14.04.2015, 11:58

Hallo Alchy,

Code: Alles auswählen

Apr 13 21:33:24 homematic-ccu2 daemon.info cuxd[833]: pclose(wget -q -O - 'http://192.168.178.37/solarlog/min150413.csv') exit(8) 0s
Apr 13 21:33:24 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallGetValue: XmlrpcTypeToIseVal failed [../Platform/DOM/iseXmlRpc.cpp (1455)]
Apr 13 21:33:24 homematic-ccu2 local0.err ReGaHss: Error: IseHssDP::ReadValue: CallGetValue failed; sVal = #Date;Time;INV;Pac;DaySum;Status;Pdc1;Pdc2;Udc1;Udc2;Temp;Uac^M 13.04.15;14:45:00;1;1884;18200;36;975;914;432;397;43;230^M 13.04.15;14:40:00;1;2286;18100;36;1214;1145;439;
In der letzten Zeile steht aber schon der Inhalt aus der CSV, also muss er die ja ausgelesen haben. Er müsste 1884 und 18200 in die Variablen schreiben...

Viele Grüße

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

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von alchy » 14.04.2015, 12:27

Das hab ich gelesen, aber ich kriege genau diese Meldung, wenn ich den Pfad zur Datei auf falsch ändere. z.B. den Port oder ähnliches.
Und beantworte bitte die Frage, wenn du einfach den Link wie oben angegeben im Browser eingibst, erhältst du?

Dann führe halt im Script executer dieses Script aus, damit wird nur eine Ausgabe erzeugt, kein Schreiben in eine Variable.
Damit ist das dann raus.

Code: Alles auswählen

var url = "http://192.168.178.37/solarlog/"#"min"#system.Date("%y%m%d") # ".csv";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var a = rueckgabe.StrValueByIndex(";",14).ToFloat();
var b = rueckgabe.StrValueByIndex(";",15).ToFloat();
WriteLine(a);
WriteLine(b);
und am Besten die JSON Ausgabe posten, bitte
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.

tomweb
Beiträge: 29
Registriert: 12.08.2014, 10:40

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von tomweb » 14.04.2015, 20:09

Little_tiger hat geschrieben:...Die ja leider auch nicht klappt...
Ich hab gerade den Aufruf im Internet Explorer versucht - geht bei mir ebenfalls nicht.
Wenn also der Support von Solarlog eine Lösung hat, sag mir bitte Bescheid.
@Little_tiger @Markuswil @bigsreen
zum Thema "pc.js?min" Aussauge Solarlog:
das geht nur bei Geräten die eine Firmware 2.x haben. Mit der 3er Firmware ist das nicht mehr möglich.
Geht also nicht mehr diese Lösung!

Little_tiger
Beiträge: 131
Registriert: 22.01.2013, 21:00

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von Little_tiger » 14.04.2015, 20:29

Hallo tomweb,

also ein Firmware-Problem.... Ok.
Kennt denn einer eine Lösung für meine json Abfrage?

Patrick

tomweb
Beiträge: 29
Registriert: 12.08.2014, 10:40

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von tomweb » 14.04.2015, 20:46

Hallo Alchy,

diese Skript geht und gibt die richtigen Werte aus:

Code: Alles auswählen

var url = "http://192.168.178.37/solarlog/"#"min"#system.Date("%y%m%d") # ".csv";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var a = rueckgabe.StrValueByIndex(";",14).ToFloat();
var b = rueckgabe.StrValueByIndex(";",15).ToFloat();
WriteLine(a);
WriteLine(b);
Ausgabe:
4034.000000
30100.000000

Dieses hier nicht:

Code: Alles auswählen

!csv einlesen mit Datum im Dateinamen von Alchy
var url = "http://192.168.178.37/solarlog/"#"min"#system.Date("%y%m%d") # ".csv";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
if (rueckgabe != "") {
dom.GetObject("SYSvar A vom Typ Zahl").State(rueckgabe.StrValueByIndex(";",14).ToFloat());
dom.GetObject("SYSvar B vom Typ Zahl").State(rueckgabe.StrValueByIndex(";",15).ToFloat());
}
Fehlercode CUxD habe ich schon gepostet.

Und ja: Wenn ich den Dateipfad manuell in den Browser eingebe, dann kann ich auch auf die CSV zugreifen.

Ich habe die Systemvariablen so erstellt, wie du es mir geschrieben hast. (siehe Bild im Anhang)

Wie bekomm ich jetzt die Werte in die dullen Variablen rein? :-)

Den Quellcode von der Webseite habe ich auch, aber der ist zu groß für das Forum, bzw. wird nicht als Anhang erlaubt. Wenn ich mir den aber anschaue, dann werden die werte aus verschiedenen JS ausgelesen und steht nicht als Klartext drinnen. Dann wirst du ihn auch nicht herausfiltern können, oder?

Jetzt müsste ich alles beantwortet haben.
Wenn das Skript oben jetzt noch die Write Werte richtig in die Systemvariable schreibt, dann wäre ich ja schon zufrieden :-)

Vielen Dank für deine bisherige Hilfe! Ich weiss, das ist nicht selbstverständlich.
Dateianhänge
Variablen.jpg
Variablen.jpg (14.3 KiB) 2797 mal betrachtet

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

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von alchy » 14.04.2015, 21:21

He? Wie lt. Meiner Anleitung?
Die Systemvariablen heißen lt. BSC bei dir SYSvar A und SYSvar B.
Im Script und in meiner Anleitung heißen sie
SYSvar A vom Typ Zahl und SYSvar B vom Typ Zahl
Hast du das Script auch entsprechend an deine System Variablennamen angepasst?

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.

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von Homoran » 14.04.2015, 21:41

Man beachte das V
Lt. Alchy klein, bei Dir groß geschrieben!

Gesendet von meinem LIFETAB_S785X mit Tapatalk
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

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

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von alchy » 14.04.2015, 22:02

Und vom Typ Zahl fehlt ganz :twisted:

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.

tomweb
Beiträge: 29
Registriert: 12.08.2014, 10:40

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von tomweb » 14.04.2015, 22:15

Oh Mann... Nicht wahr oder?

Es geht ;) vielen dank!

Auch für die Geduld!

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

Re: Solarlog Werte in Homematic Variable speichern

Beitrag von alchy » 14.04.2015, 23:04

Ich glaube ich habe Déjà-vus.
Was ist bitte an meiner >> Anleitung <<
Ich zitiere teilweise:
alchy hat geschrieben: Du legst 2 Systemvariablen in der CCU an vom Typ Zahl mit der Einheit, die der Ausgabe deiner Daten entspricht.
Ich habe keine Ahnung, was die Zahlen ausgeben. (Einheit kannst Du aber auch später noch ändern)

Im Script heissen die SYSvar A vom Typ Zahl und SYSvar B vom Typ Zahl
Benutzt du andere Namen (und das wäre durchaus verständlich :mrgreen: ) dann auch die Namen im Script entsprechend anpassen.

.....meine Anleitung noch paar mal lesen und überprüfen, ob du alles so gemacht hast. :mrgreen:
Wenn ja und es geht trotzdem nicht, dann melde dich einfach noch mal.

Code: Alles auswählen

!csv einlesen mit Datum im Dateinamen von Alchy
var url = "http://192.168.178.37/"#"min"#system.Date("%y%m%d") # ".csv";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
if (rueckgabe != "") {
dom.GetObject("SYSvar A vom Typ Zahl").State(rueckgabe.StrValueByIndex(";",14).ToFloat());
dom.GetObject("SYSvar B vom Typ Zahl").State(rueckgabe.StrValueByIndex(";",15).ToFloat());
}
nicht unverständlich? Die Frage ist durchaus Ernst gemeint. :!:
Ich dachte ich wäre auf der sicheren Seite mit Rot schreiben und ausführlich usw.
Bilder waren mir zu dem Zeitpunkt nicht möglich, da ich das alles auf dem Handy weit
weg von zu Hause geschrieben habe. Und das war umständlich genug. :oops:

Es passiert mir in letzter Zeit häufiger, bei unterschiedlichen Usern, daß ich scheinbar missverständliche Anleitungen / Hilfen schreibe.
Das kann nicht mehr an den Usern liegen, daß muss an mir liegen. :cry:
Also bitte geb mir Tipps, wie ich es besser machen kann. Ich bin für alles offen.

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 „HomeMatic allgemein“