Heizöltank auslesen und Preis nach Inhalt berechnen
Moderator: Co-Administratoren
-
- Beiträge: 252
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
hm habe über das ganze WE und gestern nochmal probiert es
läuft bei mir nicht, kannst du mal dein aktuelles Script posten.
Danke, Grüße Alex
läuft bei mir nicht, kannst du mal dein aktuelles Script posten.
Danke, Grüße Alex
-
- Beiträge: 757
- Registriert: 11.02.2013, 08:38
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Moin,
anbei mein aktuelles Skript, PLZ anpassen (meine ist 31228)
Bei mir gibt es in der HM eine Variabel "Heizoelfreiraum", von der ich meinen aktuellen Bestand auslesen.
Folgende Variabeln müssen erstellt werden
- Heizoelpreis (Zahl)
- Heizoelgesamtpreis (Zahl)
Viele Grüße
anbei mein aktuelles Skript, PLZ anpassen (meine ist 31228)
Bei mir gibt es in der HM eine Variabel "Heizoelfreiraum", von der ich meinen aktuellen Bestand auslesen.
Folgende Variabeln müssen erstellt werden
- Heizoelpreis (Zahl)
- Heizoelgesamtpreis (Zahl)
Viele Grüße
- Dateianhänge
-
- heizoelpreis.zip
- (745 Bytes) 206-mal heruntergeladen
CCU3 (80 Geräte, 105 Variablen, 50 Programme) * CCU.IO + DashUI + Apple HomeKit (Homebridge) auf Raspi2
-
- Beiträge: 64
- Registriert: 31.08.2014, 19:48
- Danksagung erhalten: 1 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Hallo Matze-PE,
vielen vielen Dank jetzt klappts, das hätte ich nie hinbekommen!
hoffentlich bleibt das ne weile...
Gruß
Seme
vielen vielen Dank jetzt klappts, das hätte ich nie hinbekommen!
hoffentlich bleibt das ne weile...
Gruß
Seme
Viele Grüße
Seme
ccu3 Raspberrymatic 3.71.12.20231020,
Thermostate 8x HM-CC-RT-DN 105155 FW 1.4, Thermostat 1x HMIP-eTRV FW 1.6.3
Wandthermostat 1x HM-TC-IT-WM-W-EU FW 1.3
Tuer-Fensterkontakte 7x HM-Sec-SC-2 FW 1.2, Tuer-Fensterkontakt-optisch 1x HMIP-SWDO 1.10.7, Tuer-Fensterkontakt opt. HMIP-SWDO-I FW 1.14.0
Fenster-Drehgriffkontakt HMIP-SRH FW 1.0.1
Bewegungsmelder HM-Sec-MDIR-2 FW 1.6
Temperatur- Feuchtesensor aussen HM-WDS10-TH-O FW 1.3
Rauchmelder HM-Sec-SD FW 1.1, 2x HMIP-SWSD FW 1.0.11
Funk-Schaltaktor HM-LC-Sw1-FM FW 1.12, Funk-Schaltsteckdose HM-ES-PMSw1-Pl 2.5
Zusatzsoftware: CUXDaemon V. 2.11, E-Mail V. 1.7.6, XML API 1.22, hm_pdetect 1.16, Philips Hue 3.2.5
Seme
ccu3 Raspberrymatic 3.71.12.20231020,
Thermostate 8x HM-CC-RT-DN 105155 FW 1.4, Thermostat 1x HMIP-eTRV FW 1.6.3
Wandthermostat 1x HM-TC-IT-WM-W-EU FW 1.3
Tuer-Fensterkontakte 7x HM-Sec-SC-2 FW 1.2, Tuer-Fensterkontakt-optisch 1x HMIP-SWDO 1.10.7, Tuer-Fensterkontakt opt. HMIP-SWDO-I FW 1.14.0
Fenster-Drehgriffkontakt HMIP-SRH FW 1.0.1
Bewegungsmelder HM-Sec-MDIR-2 FW 1.6
Temperatur- Feuchtesensor aussen HM-WDS10-TH-O FW 1.3
Rauchmelder HM-Sec-SD FW 1.1, 2x HMIP-SWSD FW 1.0.11
Funk-Schaltaktor HM-LC-Sw1-FM FW 1.12, Funk-Schaltsteckdose HM-ES-PMSw1-Pl 2.5
Zusatzsoftware: CUXDaemon V. 2.11, E-Mail V. 1.7.6, XML API 1.22, hm_pdetect 1.16, Philips Hue 3.2.5
-
- Beiträge: 252
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Juhuu nun klappt es bei Super muß man im Link /2 einstellen
und beim Suchtext statt Standard, Super.
Jetzt ist noch die Frage der Gesamt und Einzelpreis wird ja
nach dem Aktuellen Freibestand berechnet meinetwegen 1225L
das sehe ich richtig oder.
Kann man z.b. sagen das er bei 1220 L auf 1000 L abrundet und
1600 L auf 1500 L usw. hast du da Skript mäßig eine Idee ?
Grüße Alex
und beim Suchtext statt Standard, Super.
Jetzt ist noch die Frage der Gesamt und Einzelpreis wird ja
nach dem Aktuellen Freibestand berechnet meinetwegen 1225L
das sehe ich richtig oder.
Kann man z.b. sagen das er bei 1220 L auf 1000 L abrundet und
1600 L auf 1500 L usw. hast du da Skript mäßig eine Idee ?
Grüße Alex
-
- Beiträge: 757
- Registriert: 11.02.2013, 08:38
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Kannst du mit der if Schleife lösen, ich habe dort ja auch if < 500L, dann bestand =500
Weil unter 500L gibt's bei Heizöl24 eine Fehlermeldung, da es die Mindestbestellmenge ist.
Das kannst du ja deinen Bedürfnissen anpassen
... mobil via tapatalk
Weil unter 500L gibt's bei Heizöl24 eine Fehlermeldung, da es die Mindestbestellmenge ist.
Das kannst du ja deinen Bedürfnissen anpassen
... mobil via tapatalk
CCU3 (80 Geräte, 105 Variablen, 50 Programme) * CCU.IO + DashUI + Apple HomeKit (Homebridge) auf Raspi2
-
- Beiträge: 395
- Registriert: 27.06.2014, 21:50
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Hallo,
ich habe das Script auch mal rausgesammelt und versuche es zu verwenden, um die Leistungsdaten eines Solarwechselrichters abzufragen.
Das Gerät ist von SolarEdge und es gibt eine offene API dazu, die XML Files anbietet.
Nachdem ich endlich herausgefunden habe dass wget mit https und -q nur funktioniert wenn man --no-check-certificate verwendt (muss man, damit er sich überhaupt die Datei holt), wurden die Werte immernoch nicht befült.
Dies ist die tcl Datei:
Ich habe daraufhin versucht, mit tclsh auf der Shellebene die Datei manuell auszuführen und bekam als Antwort:
Es scheint also irgendwas an der Variablendefinition falsch zu sein. Habe alles nochmal doppelt gecheckt, finde aber keinen Fehler. Hat jemand eine Idee?
Danke und viele Grüße
Christian
PS: Hier der Inhalt der export.xml:
ich habe das Script auch mal rausgesammelt und versuche es zu verwenden, um die Leistungsdaten eines Solarwechselrichters abzufragen.
Das Gerät ist von SolarEdge und es gibt eine offene API dazu, die XML Files anbietet.
Nachdem ich endlich herausgefunden habe dass wget mit https und -q nur funktioniert wenn man --no-check-certificate verwendt (muss man, damit er sich überhaupt die Datei holt), wurden die Werte immernoch nicht befült.
Dies ist die tcl Datei:
Code: Alles auswählen
load tclrega.so
# Daten holen
# ============
set url "https://monitoringapi.solaredge.com/site/123456/overview?api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/solaredge/export.xml $url
set f [open "/usr/local/addons/solaredge/export.xml"]
set input [read $f]
close $f
# Werte aus XML Datei auslesen
# =============================
regexp "<lastUpdateTime>(.*?)</lastUpdateTime>" $input dummy currentv1;
regexp "<lastDayData><energy>(.*?)</energy></lastDayData>" $input dummy currentv2 ;
regexp "<lastMonthData><energy>(.*?)</energy></lastMonthData>" $input dummy currentv3 ;
regexp "<lastYearData><energy>(.*?)</energy></lastYearData>" $input dummy currentv4 ;
regexp "<lifeTimeData><energy>(.*?)</energy></lifeTimeData>" $input dummy currentv5 ;
regexp "<currentPower><power>(.*?)</power></currentPower>" $input dummy currentv6 ;
# Werte in Variabel schreiben
# =============================
set rega_cmd ""
append rega_cmd "var w0 = dom.GetObject('SolarEdge-LastUpdateTime');"
append rega_cmd "w0.State('$currentv1');"
append rega_cmd "var w1 = dom.GetObject('SolarEdge-LastDayData');"
append rega_cmd "w1.State('$currentv2');"
append rega_cmd "var w2 = dom.GetObject('SolarEdge-LastMonthData');"
append rega_cmd "w2.State('$currentv3');"
append rega_cmd "var w3 = dom.GetObject('SolarEdge-LastYearData');"
append rega_cmd "w3.State('$currentv4');"
append rega_cmd "var w4 = dom.GetObject('Solaredge-LifeTimeData');"
append rega_cmd "w4.State('$currentv5');"
append rega_cmd "var w5 = dom.GetObject('SolarEdge-CurrentPower');"
append rega_cmd "w5.State('$currentv6');"
rega_script $rega_cmd
Code: Alles auswählen
# tclsh solaredge.tcl
can't read "currentv1": no such variable
while executing
"append rega_cmd "w0.State('$currentv1');""
(file "solaredge.tcl" line 30)
Danke und viele Grüße
Christian
PS: Hier der Inhalt der export.xml:
Code: Alles auswählen
<overview><lastUpdateTime>2015-06-16 19:18:50</lastUpdateTime><lifeTimeData><energy>1438728.0</energy></lifeTimeData><lastYearData><energy>1345308.8</energy></lastYearData><lastMonthData><energy>712419.56</energy></lastMonthData><lastDayData><energy>32804.85</energy></lastDayData><currentPower><power>681.0</power></currentPower></overview>
370 Kanäle in 119 Geräten und 22 CUxD-Kanäle in 18 CUxD-Geräten, dazu ioBroker und diverse weitere eingebundene Systeme, vom 433MHz Bewegungsmelder bis hin zur Wallbox.
-
- Beiträge: 29
- Registriert: 20.11.2013, 11:33
- Hat sich bedankt: 8 Mal
- Danksagung erhalten: 1 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Danke Matze-PE für diesen Beitrag. Super Arbeit.
Ich habe das Skript ein bißchen abgewandelt. Denn nicht jeder hat einen Ölstandsanzeiger an seinem Tank geklemmt und nicht jeder will vielleicht den Tank immer vollfahren. In meinem Fall habe ich das Skript zur "Ganzzahl" geändert:
XXXXX natürlich mit der Postleitzahl angleichen
In meinem Fall habe ich den 100 ltr. Preis gelassen ( wird auch so beim Händler verhandelt ), und die Variablen als Zeichenkette angelegt.
Vorteil hier ist auch, das die Nachkommerstellen angezeigt werden.
Denn: 5 EUR durch Nachkommastellen sparen = 2 Stücke Fleich aufm Grill
Sieht dann bei mir so aus:
Ich seh es aber wie Semenchkare, hoffentlich bleibt es ne Weile und Heizöl24 fummelt nicht an der Homepage rum.
Gruß
Tourt
Ich habe das Skript ein bißchen abgewandelt. Denn nicht jeder hat einen Ölstandsanzeiger an seinem Tank geklemmt und nicht jeder will vielleicht den Tank immer vollfahren. In meinem Fall habe ich das Skript zur "Ganzzahl" geändert:
Code: Alles auswählen
load tclrega.so
# Variablen: Heizoelpreis Zahl
# Menge an Anführungszeichen angleichen
set bestellmenge "1000"
# Aufruf und Erstellung der Datei
# ===============================
set url https://www.heizoel24.de/oelbestellung/XXXX/1/$bestellmenge/1/6,5,24,11,9/0/58,00
exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/heizoel/heizoelpreis.html $url
set f [open "/usr/local/addons/heizoel/heizoelpreis.html"]
set input [read $f]
close $f
# Werte aus Datei auslesen
# ========================
regexp "Standard Schwefelarm für unschlagbare (.*?)€ " $input dummy preis ;
regexp "ich voll für nur (.*?)€." $input dummy gpreis ;
# Werte in Variabel schreiben
# =============================
set rega_cmd ""
append rega_cmd "var w0 = dom.GetObject('Heizoelpreis');"
append rega_cmd "w0.State('$preis');"
append rega_cmd "var w1 = dom.GetObject('Heizoelgesamtpreis');"
append rega_cmd "w1.State('$gpreis');"
rega_script $rega_cmd
In meinem Fall habe ich den 100 ltr. Preis gelassen ( wird auch so beim Händler verhandelt ), und die Variablen als Zeichenkette angelegt.
Vorteil hier ist auch, das die Nachkommerstellen angezeigt werden.
Denn: 5 EUR durch Nachkommastellen sparen = 2 Stücke Fleich aufm Grill
Sieht dann bei mir so aus:
Ich seh es aber wie Semenchkare, hoffentlich bleibt es ne Weile und Heizöl24 fummelt nicht an der Homepage rum.
Gruß
Tourt
Gruß
Tourt
--------------------------------------------
63 Kanäle in 29 Geräten und 24 CUxD-Kanäle in 7 CUxD-Geräten:
1x HM-RC-8, 1x CUX32, 1x HM-Sen-MDIR-O-2, 6x CUX28, 1x HM-PB-2-WM55-2, 1x HM-LC-Sw2-FM, 2x HM-LC-Sw1-FM, 1x HM-LC-Sw4-SM, 3x HM-Sec-SD, 7x HM-Sec-SC, 1x HM-SCI-3-FM, 1x HM-Sen-DB-PCB, 2x HM-CC-RT-DN, 2x HM-Sec-SC-2, 1x HM-Sec-SD-Team, 2x HM-SwI-3-FM, 1x HM-LC-Dim1TPBU-FM, 1x HM-LC-Sw1PBU-FM, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
Tourt
--------------------------------------------
63 Kanäle in 29 Geräten und 24 CUxD-Kanäle in 7 CUxD-Geräten:
1x HM-RC-8, 1x CUX32, 1x HM-Sen-MDIR-O-2, 6x CUX28, 1x HM-PB-2-WM55-2, 1x HM-LC-Sw2-FM, 2x HM-LC-Sw1-FM, 1x HM-LC-Sw4-SM, 3x HM-Sec-SD, 7x HM-Sec-SC, 1x HM-SCI-3-FM, 1x HM-Sen-DB-PCB, 2x HM-CC-RT-DN, 2x HM-Sec-SC-2, 1x HM-Sec-SD-Team, 2x HM-SwI-3-FM, 1x HM-LC-Dim1TPBU-FM, 1x HM-LC-Sw1PBU-FM, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
-
- Beiträge: 395
- Registriert: 27.06.2014, 21:50
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Habe das Problem zwischenzeitlich lösen können. Der Aufruf über wget ist ein anderer als über den Browser. Daher habe ich über wget immer ein JSON File statt eines XMLs bekommen. Seitdem das Script micht "echtem" XML gefüttert wird, klappt es perfekt.. nur, bis ich das rausgefunden hatte... aber wget -v hilftChristianF hat geschrieben: (...)
Ich habe daraufhin versucht, mit tclsh auf der Shellebene die Datei manuell auszuführen und bekam als Antwort:
Es scheint also irgendwas an der Variablendefinition falsch zu sein. Habe alles nochmal doppelt gecheckt, finde aber keinen Fehler. Hat jemand eine Idee?Code: Alles auswählen
# tclsh solaredge.tcl can't read "currentv1": no such variable while executing "append rega_cmd "w0.State('$currentv1');"" (file "solaredge.tcl" line 30)
Danke und viele Grüße
Christian
PS: Hier der Inhalt der export.xml:
Code: Alles auswählen
<overview><lastUpdateTime>2015-06-16 19:18:50</lastUpdateTime><lifeTimeData><energy>1438728.0</energy></lifeTimeData><lastYearData><energy>1345308.8</energy></lastYearData><lastMonthData><energy>712419.56</energy></lastMonthData><lastDayData><energy>32804.85</energy></lastDayData><currentPower><power>681.0</power></currentPower></overview>
370 Kanäle in 119 Geräten und 22 CUxD-Kanäle in 18 CUxD-Geräten, dazu ioBroker und diverse weitere eingebundene Systeme, vom 433MHz Bewegungsmelder bis hin zur Wallbox.
-
- Beiträge: 757
- Registriert: 11.02.2013, 08:38
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Hallo zusammen,
am 12.08.2015 23:15 hat heizoel24.de seinen Quellcode geändert, und ich finde die Preise nicht mehr im aktuellen Quellcode.
Hat jemand eine aktuelle Quelle?
am 12.08.2015 23:15 hat heizoel24.de seinen Quellcode geändert, und ich finde die Preise nicht mehr im aktuellen Quellcode.
Hat jemand eine aktuelle Quelle?
CCU3 (80 Geräte, 105 Variablen, 50 Programme) * CCU.IO + DashUI + Apple HomeKit (Homebridge) auf Raspi2
-
- Beiträge: 29
- Registriert: 20.11.2013, 11:33
- Hat sich bedankt: 8 Mal
- Danksagung erhalten: 1 Mal
Re: Heizöltank auslesen und Preis nach Inhalt berechnen
Hallo matze-pe.
Ich habe lange gesucht, meine wichtigste Zeile im Skript ist diese:
Das ist zwar nicht die schönste Seite, erfüllt aber ihren Zweck und ich kann bis auf die Nachkommastellen das mit meinem Lieferanten vergleichen.
XXXXX natürlich anpassen.
Ich habe lange gesucht, meine wichtigste Zeile im Skript ist diese:
Code: Alles auswählen
https://www.heizoel.total.de/bestellung/?zip_code=XXXXX&quantity=$bestellmenge&num_deliveries=1&submitButton=Berechnen
XXXXX natürlich anpassen.
Gruß
Tourt
--------------------------------------------
63 Kanäle in 29 Geräten und 24 CUxD-Kanäle in 7 CUxD-Geräten:
1x HM-RC-8, 1x CUX32, 1x HM-Sen-MDIR-O-2, 6x CUX28, 1x HM-PB-2-WM55-2, 1x HM-LC-Sw2-FM, 2x HM-LC-Sw1-FM, 1x HM-LC-Sw4-SM, 3x HM-Sec-SD, 7x HM-Sec-SC, 1x HM-SCI-3-FM, 1x HM-Sen-DB-PCB, 2x HM-CC-RT-DN, 2x HM-Sec-SC-2, 1x HM-Sec-SD-Team, 2x HM-SwI-3-FM, 1x HM-LC-Dim1TPBU-FM, 1x HM-LC-Sw1PBU-FM, 1x HM-TC-IT-WM-W-EU
--------------------------------------------
Tourt
--------------------------------------------
63 Kanäle in 29 Geräten und 24 CUxD-Kanäle in 7 CUxD-Geräten:
1x HM-RC-8, 1x CUX32, 1x HM-Sen-MDIR-O-2, 6x CUX28, 1x HM-PB-2-WM55-2, 1x HM-LC-Sw2-FM, 2x HM-LC-Sw1-FM, 1x HM-LC-Sw4-SM, 3x HM-Sec-SD, 7x HM-Sec-SC, 1x HM-SCI-3-FM, 1x HM-Sen-DB-PCB, 2x HM-CC-RT-DN, 2x HM-Sec-SC-2, 1x HM-Sec-SD-Team, 2x HM-SwI-3-FM, 1x HM-LC-Dim1TPBU-FM, 1x HM-LC-Sw1PBU-FM, 1x HM-TC-IT-WM-W-EU
--------------------------------------------