Benzinpreis Adapter

WebUIs (DashUI, yahui, ...), Adapter (Hue, IRTrans, Sonos, ...), Logging, Scripting

Moderator: Co-Administratoren

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

Re: Benzinpreis Adapter

Beitrag von Homoran » 09.05.2016, 17:51

Ich lese jetzt nicht den gesamten Thread noch mal. Habe nur Anfang und Ende geslesen.
Stoni hat geschrieben:Da ich nur den Wert von E5 in der Variablen haben möchte, muss ich doch die letzte Zeile mit dom.GetObject anpassen oder nicht? Statt State.(slist) müsste doch sowas wie State.("#e5) stehen oder nicht?
Oder eben nicht.
Wenn ich den Ansatz richtig verstanden habe, wird eine Liste erzeugt (slist), die dann in CuxD auf Datenpunkte verteilt wird.
Wenn du nur eine Sorte brauchst, musst du dir diese aus Cuxd rausholen.

Das Skript ist IMHO nicht dafür vorgesehen.

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

Stoni
Beiträge: 560
Registriert: 05.12.2013, 13:38
Danksagung erhalten: 1 Mal

Re: Benzinpreis Adapter

Beitrag von Stoni » 09.05.2016, 17:58

Homoran hat geschrieben:Ich lese jetzt nicht den gesamten Thread noch mal. Habe nur Anfang und Ende geslesen.
Stoni hat geschrieben:Da ich nur den Wert von E5 in der Variablen haben möchte, muss ich doch die letzte Zeile mit dom.GetObject anpassen oder nicht? Statt State.(slist) müsste doch sowas wie State.("#e5) stehen oder nicht?
Oder eben nicht.
Wenn ich den Ansatz richtig verstanden habe, wird eine Liste erzeugt (slist), die dann in CuxD auf Datenpunkte verteilt wird.
Wenn du nur eine Sorte brauchst, musst du dir diese aus Cuxd rausholen.

Das Skript ist IMHO nicht dafür vorgesehen.

Gruß
Rainer
Watt??? :-)))

Ist mir wohl zu hoch...

;-)

derhomematicneuling
Beiträge: 146
Registriert: 18.10.2013, 20:40

Re: Benzinpreis Adapter

Beitrag von derhomematicneuling » 09.05.2016, 18:24

So läuft es mit einer Variablen bei mir:

Code: Alles auswählen

.....
! Name
var posValueStart = "name\":\"";
var posValueEnd = "\",\"";
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var name = srueck.Substr(posValue, 100).StrValueByIndex(posValueEnd, 0);
! offen
!var posValueStart = ",\"isOpen\":";
!var posValueEnd = ",";
!var posValue = srueck.Find(posValueStart) + posValueStart.Length();
!var off = srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
!if (off == "true") { var offen = " offen "; } else { var offen = " geschlossen "; }
! Preis e5
!var posValueStart = ",\"e5\":";
!var posValueEnd = ",";
!var posValue = srueck.Find(posValueStart) + posValueStart.Length();
!var e5= srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
!Preis e10
!var posValueStart = ",\"e10\":";
!var posValueEnd = ",";
!var posValue = srueck.Find(posValueStart) + posValueStart.Length();
!var e10 = srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
! Preis Diesel
var posValueStart = ",\"diesel\":";
var posValueEnd = ",";
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var diesel = srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
!slist = slist #name #" hat "#offen #" E5 kostet "#e5 #"EUR - E10 kostet "#e10 #"EUR - DIESEL kostet "#diesel # "EUR\n"; ! Beispielverwendung, alle Daten in eine Variable schreiben
}
!WriteLine(slist); ! Ausgabe auf dem Bildschirm
! dom.GetObject("Preis_Diesel").State(slist); ! Speichern in Systemvariable 
dom.GetObject("Preis_Diesel").Variable(diesel.ToFloat(3));

ipa
Zuletzt geändert von alchy am 09.05.2016, 18:33, insgesamt 1-mal geändert.
Grund: Code bitte in Codetags posten

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

Re: Benzinpreis Adapter

Beitrag von alchy » 09.05.2016, 18:57

Stoni hat geschrieben:Hi,
wollte Dein Script auch nutzen, aber der Wert bleibt bei 0,00 Euro.
Ich habe meine API und die TankID angepasst, statt "Systemvariablen_String" am Ende habe ich den Namen der Variablen "Tanken" eingetragen.
Wo könnte jetzt der Fehler sein?
Grundsätzlich gehört erstmal das Ausrufezeichen weg in der Zeile, welche die Speicherung vornimmt.
Mit dem Ausrufezeichen kommentierst du die Zeile aus, ergo sie wird nicht ausgeführt.
Ohne Ausrufezeichen, und wenn die Variable Tanken eine Zeichenkettevariable wäre, würde die gesamte Bildschirmausgabe darin gespeichert werden. :wink:

Eigentlich willst du aber etwas anderes, wie ich lese. Bei nur einer Tankstellenabfrage kannst du natürlich auch den Preis jeder einzelnen Sorte in seine eigene Variable schreiben. KEine Ahnung was Homoran denkt.

Code: Alles auswählen

....
slist = slist #name #" hat "#offen #" E5 kostet "#e5 #"EUR - E10 kostet "#e10 #"EUR - DIESEL kostet "#diesel # "EUR\n"; ! Beispielverwendung, alle Daten in eine Variable schreiben
}
! WriteLine(slist); ! Ausgabe auf dem Bildschirm
dom.GetObject("Tanken").State(e5); ! Speichern in Systemvariable
Speichert den Wert von e5 in die Systemvariable Tanken.

Ein Beispiel für all diejenigen, die den Preis jeder Spritsorte in jeweils ihre eigene Variable Typ Zahl speichern wollen,
würde dann so aussehen:

Code: Alles auswählen

....
slist = slist #name #" hat "#offen #" E5 kostet "#e5 #"EUR - E10 kostet "#e10 #"EUR - DIESEL kostet "#diesel # "EUR\n"; ! Beispielverwendung, alle Daten in eine Variable schreiben
}
! WriteLine(slist); ! Ausgabe auf dem Bildschirm
dom.GetObject("Preis_E5").Variable(e5.ToFloat(3)); ! Speichern Preis e5 in Systemvariable TYp Zahl
dom.GetObject("Preis_E10").Variable(e10.ToFloat(3)); ! Speichern Preis e10 in Systemvariable TYp Zahl
dom.GetObject("Preis_Diesel").Variable(diesel.ToFloat(3)); ! Speichern Preis Diesel in Systemvariable TYp Zahl
Aber das geht natürlich nur bei Verwendung EINER Tankstelle. Sind mehrere Tankstellen eingetragen, wird auf die Art nur der Preis der letzen gespeichert.
Wer Anpassungen will, muss sich melden.

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.

Stoni
Beiträge: 560
Registriert: 05.12.2013, 13:38
Danksagung erhalten: 1 Mal

Re: Benzinpreis Adapter

Beitrag von Stoni » 09.05.2016, 19:22

Hallo Alchy (Scriptguru),

ich hatte mir bereits gedacht, dass das slist durch den jeweiligen Wert ersetzt werden muss. Eigentlich hatte ich das u.a. auch mit e5 versucht, hatte alles nicht funktioniert. Wahrscheinlich ging es nicht, weil ich es in "" gesetzt habe.

Jetzt läuft es, danke!!

Gruß Stoni


Gruß Stoni

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

Re: Benzinpreis Adapter

Beitrag von alchy » 09.05.2016, 19:37

Stoni hat geschrieben:Hallo Alchy (Scriptguru),
Wahrscheinlich ging es nicht, weil ich es in "" gesetzt habe.
Nicht nur wahrscheinlich, sondern sehr sicher sogar :evil:

Wenn du z.B.

Code: Alles auswählen

dom.GetObject("Tanken").State("e5");
ausführst, wird versucht, den String e5 in die Variable mit Namen Tanken zu schreiben.
In einer Zeichenkettenvariablen ist das auch möglich, bei einer Zahlvariablen sollte das zum Fehler
im Log führen und die Variable sollte auf 0.00 gesetzt werden.

In meiner Signatur findest du Links zur Scriptdoku. Da solltest du so was lesen können, denke ich mal.

Alchy
nix scriptguru - nur Anwender mit Helfersyndrom

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.

julmer
Beiträge: 22
Registriert: 22.05.2016, 10:44
Hat sich bedankt: 7 Mal

Re: Benzinpreis Adapter

Beitrag von julmer » 26.05.2016, 20:35

Hallo,

bei mir werden mit dem Script keine Daten in den System Variablen angezeigt.
Wie muss ich die Variablen genau anlegen?

Code: Alles auswählen

!-----------------------------------------------------------------------------
! Hier alle was man verändern kann/muss
! Voraussetzung: CUxD und ein API Zugang bei Tankkoenig.de
!-----------------------------------------------------------------------------
var apikey = "b7ae6e28-d5ef-3147-fd8d-80049df40b04"; !Ihr API-Key
var lat = ""; !Breitengrad wird automatisch aus der CCU geholt, solange die Variabel "" ist (Format 49.5668)
var lng = ""; !Längengrad wird automatisch hier aus der CCU geholt, solange die Variabel "" ist (Format 8.3254)
var rad = "5"; !Suchradius in km; erlaubter Wert: ganze positive Zahl <= 25
var sort = "price"; !Sortierung; Werte 'price' oder 'dist'
var type = "e10"; !Spritsorte; erlaubte Werte; Werte: 'e5', 'e10' oder 'diesel'

var CUxD_Device = "CUxD.CUX2801001:2"; !CUxD Virtuelles Gerät

!Alle Variabeln sind optional
var tank1_adresse = "Tank_Adresse"; !Zeichenkette
var tank1_preis = "Tank_Preis"; !Zahl 0 - 5 Euro
var tank1_marke = "Tank_Typ"; !Zeichenkette
var tank1_entfernung = "Tank_Dist"; !Zahl 0 - 30 km

var tank2_adresse = "Tank2_Adresse"; !Zeichenkette
var tank2_preis = "Tank2_Preis"; !Zahl 0 - 5 Euro
var tank2_marke = "Tank2_Typ"; !Zeichenkette
var tank2_entfernung = "Tank2_Dist"; !Zahl 0 - 30 km

var tank3_adresse = "Tank3_Adresse"; !Zeichenkette
var tank3_preis = "Tank3_Preis"; !Zahl 0 - 5 Euro
var tank3_marke = "Tank3_Typ"; !Zeichenkette
var tank3_entfernung = "Tank3_Dist"; !Zahl 0 - 30 km

var tank4_adresse = "Tank4_Adresse"; !Zeichenkette
var tank4_preis = "Tank4_Preis"; !Zahl 0 - 5 Euro
var tank4_marke = "Tank4_Typ"; !Zeichenkette
var tank4_entfernung = "Tank4_Dist"; !Zahl 0 - 30 km

!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------

if(lat == ""){
   lat = system.Latitude().ToString();
}
if(lng == ""){
   lng = system.Longitude().ToString();
}   
string tankenUrl = "https://creativecommons.tankerkoenig.de/json/list.php";
string params = "-d lat=" + lat + " -d lng=" + lng + " -d rad=" + rad  + " -d sort=" + sort + " -d type=" + type + " -d apikey=" + apikey;
string cmd = "LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -k -X GET -H \"Content-Type:application/json\" -G " + params + " " + tankenUrl;

var stdout;
var posStart;
var posEnd;
var adresse;
var preis;
var substring;
var posValueStart;
var posValueEnd;
var posValue;
    
dom.GetObject(CUxD_Device + ".CMD_SETS").State(cmd);
dom.GetObject(CUxD_Device + ".CMD_QUERY_RET").State(1);
stdout  = dom.GetObject(CUxD_Device + ".CMD_RETS").State();
   
!-----------------------------------------------------------------------------
! Tankstelle 1
!-----------------------------------------------------------------------------

posStart = "[{";
posEnd = "]}";
substring = stdout.Substr(stdout.Find(posStart), stdout.Find(posEnd));

!Adresse
if(dom.GetObject(tank1_adresse).IsTypeOf(OT_VARDP)){
   posValueStart = "\"name\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"street\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"houseNumber\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"postCode\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"place\":\"";
   posValueEnd = "\"},{";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse  + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) ;

   dom.GetObject(tank1_adresse).State(adresse);
}

!Tankstellentyp
if(dom.GetObject(tank1_marke).IsTypeOf(OT_VARDP)){
   posValueStart = "\"brand\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank1_marke).State(adresse);
}

!Entfernung
if(dom.GetObject(tank1_entfernung).IsTypeOf(OT_VARDP)){
   posValueStart = "\"dist\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank1_entfernung).State(preis.ToFloat());
}

!Preis
if(dom.GetObject(tank1_preis).IsTypeOf(OT_VARDP)){
   posValueStart = "\"price\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank1_preis).State(preis.ToFloat());
}

!-----------------------------------------------------------------------------
! Tankstelle 2
!-----------------------------------------------------------------------------

posStart = "},{";
posEnd = "]}";
substring = substring.Substr(substring.Find(posStart) + posStart.Length(), substring.Find(posEnd));

!Adresse
if(dom.GetObject(tank2_adresse).IsTypeOf(OT_VARDP)){
   posValueStart = "\"name\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"street\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"houseNumber\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"postCode\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"place\":\"";
   posValueEnd = "\"},{";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse  + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) ;

   dom.GetObject(tank2_adresse).State(adresse);
}

!Tankstellentyp
if(dom.GetObject(tank2_marke).IsTypeOf(OT_VARDP)){
   posValueStart = "\"brand\":";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank2_marke).State(adresse);
}

!Entfernung
if(dom.GetObject(tank2_entfernung).IsTypeOf(OT_VARDP)){
   posValueStart = "\"dist\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank2_entfernung).State(preis.ToFloat());
}

!Preis
if(dom.GetObject(tank2_preis).IsTypeOf(OT_VARDP)){
   posValueStart = "\"price\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank2_preis).State(preis.ToFloat());
}

!-----------------------------------------------------------------------------
! Tankstelle 3
!-----------------------------------------------------------------------------

posStart = "},{";
posEnd = "]}";
substring = substring.Substr(substring.Find(posStart) + posStart.Length(), substring.Find(posEnd));

!Adresse
if(dom.GetObject(tank3_adresse).IsTypeOf(OT_VARDP)){
   posValueStart = "\"name\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"street\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"houseNumber\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"postCode\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"place\":\"";
   posValueEnd = "\"},{";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse  + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) ;

   dom.GetObject(tank3_adresse).State(adresse);
}

!Tankstellentyp
if(dom.GetObject(tank3_marke).IsTypeOf(OT_VARDP)){
   posValueStart = "\"brand\":";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank3_marke).State(adresse);
}

!Entfernung
if(dom.GetObject(tank3_entfernung).IsTypeOf(OT_VARDP)){
   posValueStart = "\"dist\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank3_entfernung).State(preis.ToFloat());
}

!Preis
if(dom.GetObject(tank3_preis).IsTypeOf(OT_VARDP)){
   posValueStart = "\"price\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank3_preis).State(preis.ToFloat());
}

!-----------------------------------------------------------------------------
! Tankstelle 4
!-----------------------------------------------------------------------------

posStart = "},{";
posEnd = "]}";
substring = substring.Substr(substring.Find(posStart) + posStart.Length(), substring.Find(posEnd));

!Adresse
if(dom.GetObject(tank4_adresse).IsTypeOf(OT_VARDP)){
   posValueStart = "\"name\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"street\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"houseNumber\":\"";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) + ", ";

   posValueStart = "\"postCode\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse + substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) + " ";

   posValueStart = "\"place\":\"";
   posValueEnd = "\"},{";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = adresse  + substring.Substr(posValue, 50).StrValueByIndex(posValueEnd, 0) ;

   dom.GetObject(tank4_adresse).State(adresse);
}

!Tankstellentyp
if(dom.GetObject(tank1_marke).IsTypeOf(OT_VARDP)){
   posValueStart = "\"brand\":";
   posValueEnd = "\",\"";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   adresse = substring.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank4_marke).State(adresse);
}

!Entfernung
if(dom.GetObject(tank1_entfernung).IsTypeOf(OT_VARDP)){
   posValueStart = "\"dist\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank4_entfernung).State(preis.ToFloat());
}

!Preis
if(dom.GetObject(tank4_preis).IsTypeOf(OT_VARDP)){
   posValueStart = "\"price\":";
   posValueEnd = ",";
   posValue = substring.Find(posValueStart) + posValueStart.Length();
   preis = substring.Substr(posValue, 6).StrValueByIndex(posValueEnd, 0) ;
   dom.GetObject(tank4_preis).State(preis.ToFloat());
}

Benutzeravatar
BaluderBär
Beiträge: 7
Registriert: 10.09.2015, 10:03
Wohnort: Baden-Württemberg

Re: Benzinpreis Adapter

Beitrag von BaluderBär » 28.08.2016, 11:01

Hallo,
hat jemand außer mir auch momentan Probleme mit den Preisen? Diese werden bei mir nicht mehr richtig angezeigt.
Momentan habe ich die Version, in der alle Preise in eine Variable geschrieben werden. Info: Zu Beginn ging es auch. Seit einigen Tagen/Wochen nicht mehr.
Weiß jemand Rat?

Danke + Gruß Balu
Dateianhänge
2016-08-28_10-57-16_IMG_7653.JPG

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

Re: Benzinpreis Adapter

Beitrag von alchy » 28.08.2016, 13:27

Da musst du schon das Script posten bzw. verlinken, welches du verwendest.

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
BaluderBär
Beiträge: 7
Registriert: 10.09.2015, 10:03
Wohnort: Baden-Württemberg

Re: Benzinpreis Adapter

Beitrag von BaluderBär » 01.09.2016, 22:30

Hallo Alchy,
sorry hatte ich vergessen.
Hier -->

Code: Alles auswählen

Copy des Scriptes entfernt

Antworten

Zurück zu „CCU.IO“