Benzinpreis Adapter
Moderator: Co-Administratoren
-
- Beiträge: 10757
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 674 Mal
Re: Benzinpreis Adapter
Klick im Executer mal unten auf STDOUT ist die Ausgabe schöner.
Natürlich kannst Du das Ganze auch auf einem anderen Kanal von cuxd exec ausführen (Uwe hat ja genug davon spendiert) aber ein 2tes Gerät ? Dabei einfach das was ich oben schrieb beachten.
So nun zur weiteren Frage, willst Du alle Preise in je einer Variablen abspeichern, jede für sich ..... ??
Alchy
Natürlich kannst Du das Ganze auch auf einem anderen Kanal von cuxd exec ausführen (Uwe hat ja genug davon spendiert) aber ein 2tes Gerät ? Dabei einfach das was ich oben schrieb beachten.
So nun zur weiteren Frage, willst Du alle Preise in je einer Variablen abspeichern, jede für sich ..... ??
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.
Re: Benzinpreis Adapter
So läuft es bei mir.
var url = "http://www.benzinpreis-aktuell.de/widget/7241w";
!hier ist die Abfrage mit CUxD
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string sprit_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var pos = sprit_xml.Find('class="pa"');
var len = sprit_xml.Length();
string sprit_xml_n = sprit_xml.Substr(pos + 11, (len - pos - 11));
string sprit_xml = sprit_xml_n;
var pos = sprit_xml_n.Find('/div');
string sprit_1 = sprit_xml_n.Substr(0, pos);
var len = sprit_1.Length();
string sprit_1_wert = sprit_1.Substr(0,5);
string sprit_1_name = sprit_1.Substr(13, (len - 15));
var pos = sprit_xml.Find('class="pa"');
var len = sprit_xml.Length();
string sprit_xml_n = sprit_xml.Substr(pos + 11, (len - pos - 11));
string sprit_xml = sprit_xml_n;
var pos = sprit_xml_n.Find('/div');
string sprit_2 = sprit_xml_n.Substr(0, pos);
var len = sprit_2.Length();
string sprit_2_wert = sprit_2.Substr(0,5);
string sprit_2_name = sprit_2.Substr(13, (len - 15));
var pos = sprit_xml.Find('class="pa"');
var len = sprit_xml.Length();
string sprit_xml_n = sprit_xml.Substr(pos + 11, (len - pos - 11));
string sprit_xml = sprit_xml_n;
var pos = sprit_xml_n.Find('/div');
string sprit_3 = sprit_xml_n.Substr(0, pos);
var len = sprit_3.Length();
string sprit_3_wert = sprit_3.Substr(0,5);
string sprit_3_name = sprit_3.Substr(13, (len - 15));
var e;
object obj = dom.GetObject('Preis_Aktualisierung');
e=obj.State(system.Date("%d.%m.%Y %H:%M:%S"));
object o = dom.GetObject('Preis_Super_Benzin');
var x = o.State(sprit_1_wert);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
object o = dom.GetObject('Preis_Super_E10');
var x = o.State(sprit_2_wert);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
object o = dom.GetObject('Preis_Diesel');
var x = o.State(sprit_3_wert);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
Danke nochmal an MarioP
var url = "http://www.benzinpreis-aktuell.de/widget/7241w";
!hier ist die Abfrage mit CUxD
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string sprit_xml = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var pos = sprit_xml.Find('class="pa"');
var len = sprit_xml.Length();
string sprit_xml_n = sprit_xml.Substr(pos + 11, (len - pos - 11));
string sprit_xml = sprit_xml_n;
var pos = sprit_xml_n.Find('/div');
string sprit_1 = sprit_xml_n.Substr(0, pos);
var len = sprit_1.Length();
string sprit_1_wert = sprit_1.Substr(0,5);
string sprit_1_name = sprit_1.Substr(13, (len - 15));
var pos = sprit_xml.Find('class="pa"');
var len = sprit_xml.Length();
string sprit_xml_n = sprit_xml.Substr(pos + 11, (len - pos - 11));
string sprit_xml = sprit_xml_n;
var pos = sprit_xml_n.Find('/div');
string sprit_2 = sprit_xml_n.Substr(0, pos);
var len = sprit_2.Length();
string sprit_2_wert = sprit_2.Substr(0,5);
string sprit_2_name = sprit_2.Substr(13, (len - 15));
var pos = sprit_xml.Find('class="pa"');
var len = sprit_xml.Length();
string sprit_xml_n = sprit_xml.Substr(pos + 11, (len - pos - 11));
string sprit_xml = sprit_xml_n;
var pos = sprit_xml_n.Find('/div');
string sprit_3 = sprit_xml_n.Substr(0, pos);
var len = sprit_3.Length();
string sprit_3_wert = sprit_3.Substr(0,5);
string sprit_3_name = sprit_3.Substr(13, (len - 15));
var e;
object obj = dom.GetObject('Preis_Aktualisierung');
e=obj.State(system.Date("%d.%m.%Y %H:%M:%S"));
object o = dom.GetObject('Preis_Super_Benzin');
var x = o.State(sprit_1_wert);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
object o = dom.GetObject('Preis_Super_E10');
var x = o.State(sprit_2_wert);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
object o = dom.GetObject('Preis_Diesel');
var x = o.State(sprit_3_wert);
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
Danke nochmal an MarioP
Raspberrymatic, nano CUL, Elero-Stick, IOBroker auf WIN10, Tahoma, HUE, RING, Gardena
Re: Benzinpreis Adapter
Stimmt, sieht besser aus.alchy hat geschrieben:Klick im Executer mal unten auf STDOUT ist die Ausgabe schöner.
Code: Alles auswählen
Super Benzin
1.349
Super E10
1.329
Diesel
1.149
Ich möchte verschiedene Variablen, da bin ich in der Darstellung von DashUI flexibler.alchy hat geschrieben:So nun zur weiteren Frage, willst Du alle Preise in je einer Variablen abspeichern, jede für sich ..... ??
Ich werde jetzt mein 2. System.exec-Gerät löschen und mit CUxD.CUX2801001:2 alles noch mal neu probieren.
Nachtrag:
Mit dem Script oben von michihorn neu probiert - FUNKTIONIERT.
Ich danke euch für die hier gezeigte Unterstützung !
Gruß
Dirk
RaspberryMatic mit CUxD, XML-API und Email-Addon, Visualisierung mittels ioBroker auf Android 22"-Wandtablet
http://www.DessauWetter.de
Dirk
RaspberryMatic mit CUxD, XML-API und Email-Addon, Visualisierung mittels ioBroker auf Android 22"-Wandtablet
http://www.DessauWetter.de
Re: Benzinpreis Adapter
Hallo Dirk.
ich habe verschiedene Abruffunktionen im Einsatz.
Den Sprit, Onlinewetter, Pushmail, VPN-Status .....
Habe es anfangs auch mit nur einem virtuellen Gerät
versucht. Hat nicht stabil Funktioniert.
Habe jetzt für jede Anwendung ein virtuelles Gerät mit
einem Channel. Läuft perfekt.
LG - Mario
ich habe verschiedene Abruffunktionen im Einsatz.
Den Sprit, Onlinewetter, Pushmail, VPN-Status .....
Habe es anfangs auch mit nur einem virtuellen Gerät
versucht. Hat nicht stabil Funktioniert.
Habe jetzt für jede Anwendung ein virtuelles Gerät mit
einem Channel. Läuft perfekt.
LG - Mario
Mario
-
- Beiträge: 10757
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 674 Mal
Re: Benzinpreis Adapter
Lass das mal den Uwe lesen.
Mit jedem exec kommen glaube 15 oder 16 Kanäle. Ich hatte noch nie Probleme mit Cuxd.
Es spricht nichts dagegen verschiedene Funktionen auf die Kanäle zu verteilen, aber für jede Funktion ein Gerät anlegen?
Nicht das es nicht funktioniert, aber ich traue Uwe durchaus zu das es unnötig ist.
Du kaufst doch auch keinen 4 Fach Aktor und nutzt immer nur einen.
Alchy
Mit jedem exec kommen glaube 15 oder 16 Kanäle. Ich hatte noch nie Probleme mit Cuxd.
Es spricht nichts dagegen verschiedene Funktionen auf die Kanäle zu verteilen, aber für jede Funktion ein Gerät anlegen?
Nicht das es nicht funktioniert, aber ich traue Uwe durchaus zu das es unnötig ist.
Du kaufst doch auch keinen 4 Fach Aktor und nutzt immer nur einen.
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.
Re: Benzinpreis Adapter
Hi Alchy.
Nachdem ich im CUxD das Gerät angelegt habe,
gehe ich auf der CCU in den Posteingang,
stell die Channelmenge auf 1 und leg das Gerät an.
Somit hab ich nur einen einfachen Aktor.
Nachdem ich im CUxD das Gerät angelegt habe,
gehe ich auf der CCU in den Posteingang,
stell die Channelmenge auf 1 und leg das Gerät an.
Somit hab ich nur einen einfachen Aktor.
Mario
-
- Beiträge: 10757
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 674 Mal
Re: Benzinpreis Adapter
Willst Du mich veralbern? Ich weiß, natürlich kann man die Kanalanzahl des Gerätes reduzieren.
Auch später noch in den Einstellungen des Gerätes auf der CCU. Ich hätte schreiben sollen standardmäßig kommt jedes Gerät...
Aber wenn Uwe ein mehrkanaliges Gerät anbietet, dann funktionieren auch mehrere Kanäle.
Ich habe auch noch keine Post gelesen, der das Gegenteil behaupten würde.
Nur um das von meiner Seite klarzustellen:
Jeder kann es machen wie er will, jeder hat auch andere Ideen und Vorlieben,
Der eine erzeugt lieber 15 Geräte als 15 Kanäle eines Gerätes zu benutzen.
Das ist voll in Ordnung. Aber Warnungen an andere User:
sollten auch fundiert sein.
Alchy
Auch später noch in den Einstellungen des Gerätes auf der CCU. Ich hätte schreiben sollen standardmäßig kommt jedes Gerät...
Aber wenn Uwe ein mehrkanaliges Gerät anbietet, dann funktionieren auch mehrere Kanäle.
Ich habe auch noch keine Post gelesen, der das Gegenteil behaupten würde.
Nur um das von meiner Seite klarzustellen:
Jeder kann es machen wie er will, jeder hat auch andere Ideen und Vorlieben,
Der eine erzeugt lieber 15 Geräte als 15 Kanäle eines Gerätes zu benutzen.
Das ist voll in Ordnung. Aber Warnungen an andere User:
MarioP hat geschrieben:Habe es anfangs auch mit nur einem virtuellen Gerät versucht. Hat nicht stabil Funktioniert.
sollten auch fundiert sein.
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.
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Benzinpreis Adapter
Hab's jetzt gelesen.alchy hat geschrieben:Lass das mal den Uwe lesen.
Danke und ja, alle Kanäle funktionieren unabhängig voneinander. Unabhängig davon gibt es mit der aktuellen CUxD-Version auch keine Probleme mehr bei vielen gleichzeitigen Aufrufen von CUxD-System.Exec kurz hintereinander.alchy hat geschrieben:Aber wenn Uwe ein mehrkanaliges Gerät anbietet, dann funktionieren auch mehrere Kanäle.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
Re: Benzinpreis Adapter
Nur zur Vollständigkeit ...
Nutze jetzt ein "Gerät" mit mittlerweile 3 Kanälen.
2 davon holen Benzinpreise (zur gleichen Zeit) von verschiedenen Tankstellen.
Keine Probleme ...
Nutze jetzt ein "Gerät" mit mittlerweile 3 Kanälen.
2 davon holen Benzinpreise (zur gleichen Zeit) von verschiedenen Tankstellen.
Keine Probleme ...
Gruß
Dirk
RaspberryMatic mit CUxD, XML-API und Email-Addon, Visualisierung mittels ioBroker auf Android 22"-Wandtablet
http://www.DessauWetter.de
Dirk
RaspberryMatic mit CUxD, XML-API und Email-Addon, Visualisierung mittels ioBroker auf Android 22"-Wandtablet
http://www.DessauWetter.de