Ankündigung

Einklappen
Keine Ankündigung bisher.

Visu: Start- Endzeit eingabe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nullo83
    antwortet
    Hi ak68,
    hab deine pn gestern gelesen bin aber noch nicht zum antworten gekommen. Kannst du mir nochmal genau schreiben was nicht passt? Verstehe es nicht ganz. Grundsätzlich liefert awattar ab 14:00 die neuen Preise bis zum nächsten Tag 23:59

    wenn du also am nächsten Tag um 10:00 Uhr anrufst bekommst du nur die Preise von 10:00 bis 23:59.

    lg Mandi (nullo83)
    Zuletzt geändert von nullo83; 08.02.2022, 08:34.

    Einen Kommentar schreiben:


  • ak68
    antwortet
    Hallo zusammen,

    ich habe mit dem LBS von nullo83 folgendes Problem:

    Die Abfrage der Preise ist korrekt, jedoch liegen die 34 JSON-Elemente nur um 14 Uhr an, danach sind die Elemente nicht mehr vorhanden also z.B. um 0 Uhr die Ausgänge 24-34 ?. Das bedeutet, dass die Ausgänge dann NICHT neu beschrieben werden, also die jeweils letzten Werte stehen bleiben.

    Wie kann man den LBS ändern, so dass in diesen Fällen die Ausgänge der nicht-vorhandenen Array-Elemente auf "LEER" gesetzt werden ?

    Vielen Dank !

    Code:
    ###[DEF]###
    [name = aWattar hourly (0.1) ]
    
    [e#1 TRIGGER = Trigger ]
    [e#2 OPTION = Token ]
    [e#3 OPTION = Startzeit ]
    [e#4 OPTION = Endzeit ]
    [e#5 OPTION = API ]
    [e#6 OPTION = LogLevel #init=0 ]
    
    [a#1 = preisObjekt ]
    [a#2 = marktpreis1 ]
    [a#3 = marktpreis2 ]
    [a#4 = marktpreis3 ]
    [a#5 = marktpreis4 ]
    [a#6 = marktpreis5 ]
    [a#7 = marktpreis6 ]
    [a#8 = marktpreis7 ]
    [a#9 = marktpreis8 ]
    [a#10 = marktpreis9 ]
    [a#11 = marktpreis10 ]
    [a#12 = marktpreis11 ]
    [a#13 = marktpreis12 ]
    [a#14 = marktpreis13 ]
    [a#15 = marktpreis14 ]
    [a#16 = marktpreis15 ]
    [a#17 = marktpreis16 ]
    [a#18 = marktpreis17 ]
    [a#19 = marktpreis18 ]
    [a#20 = marktpreis19 ]
    [a#21 = marktpreis20 ]
    [a#22 = marktpreis21 ]
    [a#23 = marktpreis22 ]
    [a#24 = marktpreis23 ]
    [a#25 = marktpreis24 ]
    [a#26 = marktpreis25 ]
    [a#27 = marktpreis26 ]
    [a#28 = marktpreis27 ]
    [a#29 = marktpreis28 ]
    [a#30 = marktpreis29 ]
    [a#31 = marktpreis30 ]
    [a#32 = marktpreis31 ]
    [a#33 = marktpreis32 ]
    [a#34 = marktpreis33 ]
    [a#35 = marktpreis34 ]
    ###[/DEF]###
    
    
    ###[HELP]###
    Der Baustein fragt die stündlichen Strompreise bei aWattar ab. Dazu wird ein Token benötigt, den man bei Anmeldung des Tarifes bekommt. Optional kann man die Start- und Endzeit angeben um die Daten für einen bestimmten Zeitraum abzufragen. Die Zeiten müssen ein UNIX-Timestamp in Mikrosekunden sein. Werden keine Zeiten angegeben wird die Endzeit auf in 36h gesetzt. Die API von aWattar liefert pro Stunde einen Preis in €/MWh zurück, dieser wird vom LBS in cent/kWh umgerechnet. Es gibt insgesamt max 35 Ausgänge (d.h. man erhält max. die ersten 34 Werte der Abfrage). Die aWattar-API liefert täglich um 14:00 Uhr die neuen Strompreise des nächsten Tages (Tag 1 14:00 -> Tag 2 24:00 = 34h -> daher die 34 Ausgänge). Will man zb. alle Werte vom Oktober 2019 abfragen, so muss der LBS dementsprechend oft mit geänderten Start- und Endzeit abgerufen werden.
    
    <hr />
    E1: Trigger
    E2: Token von aWattar
    E3: Abfragezeitraum von (TS in Mikrosekunden) -> optional
    E4: Abfragezeitraum bis (TS in Mikrosekunden) -> optional
    E5: API-URL
    E6: Debuglevel
    
    A1-A34: Marktpreise in cent/kWh
    
    <hr />
    <b><u>Changelog:</u></b>
    0.1:<ul>
    <li>initiale Version</li>
    </ul>
    
    <hr/>
    Wer sich irgendwie erkenntlich zeigen möchte, kann das bei der Anmeldung bei aWattar machen indem er folgenden Code angibt: 3FZDSALNV
    
    <hr/>
    ###[/HELP]###
    
    
    ###[LBS]###
    <?
    function LB_LBSID($id) {
    if ($E=logic_getInputs($id)) {
    if (($E[1]['refresh'] && $E[1]['value']!="")) {
    LB_LBSID_debug($id,"LBS triggerd",7);
    //if ($E[2]['value']="") {
    logic_callExec(LBSID,$id);
    //} else {
    //LB_LBSID_debug($id,"Token ist Pflicht",0);
    //}
    }
    }
    }
    
    function LB_LBSID_debug($id,$s,$l) {
    $a=array("Emergency","Alert","Critical","Error","W arning","Notice","Informational","Debug");
    $E=logic_getInputs($id);
    $DEBUG=$E[6]['value'];
    $l<$DEBUG && writeToCustomLog("LBSLBSID",$l,"(ID$id) ".$a[$l].": ".$s);
    }
    
    ?>
    ###[/LBS]###
    
    
    ###[EXEC]###
    <?
    require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
    //set_time_limit(60);
    sql_connect();
    
    $E=logic_getInputs($id);
    
    $token=$E[2]['value'];
    
    LB_LBSID_debugExec($id,"Token gesetzt (".$token."), starte EXEC-Teil",7);
    $startTS=$E[3]['value'];
    LB_LBSID_debugExec($id,"StartTS gesetzt (".$startTS.")",7);
    $endTS=$E[4]['value'];
    LB_LBSID_debugExec($id,"EndTS gesetzt (".$endTS.")",7);
    $url = $E[5]['value'];//"https://api.awattar.com/v1/marketdata";
    
    if($endTS == ""){
    $endTS = number_format((microtime(true)*1000)+133200000,0,' .',''); //aktuelle Uhrzeit + max 36 h
    LB_LBSID_debugExec($id,"EndTS (".$endTS.")",7);
    }
    if($startTS == ""){
    $startTS = number_format((microtime(true)*1000),0,'.','');
    $url = $url."?start=".$startTS."&end=".$endTS;
    LB_LBSID_debugExec($id,"StartTS gesetzt (".$startTS.")",7);
    }else{
    $url = $url."?start=".$startTS."&end=".$endTS;
    }
    
    LB_LBSID_debugExec($id,"URL: (".$url.")",7);
    
    $ch = curl_init();
    if($token!=""){
    $authorization = "Authorization: Bearer ".$token;
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
    }else{
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' ));
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $head = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
    
    
    curl_close($ch);
    if(($head!="")){
    LB_LBSID_debugExec($id,"Statusantwort von aWattar (".$httpCode.")",7);
    $obj = json_decode($head);
    LB_LBSID_debugExec($id,"Antwort von aWattar: ".$head,7);
    $timeData = $obj->data;
    
    logic_setOutput($id,1,json_encode($timeData));
    LB_LBSID_debugExec($id,"Ausgang 1: ".json_encode($timeData),7);
    $i = 2;
    foreach ($timeData as $timeslot) {
    LB_LBSID_debugExec($id,"Ausgang ".$i.": ".$timeslot->marketprice/10,7);
    logic_setOutput($id,$i,$timeslot->marketprice/10);
    $i++;
    }
    }else{
    LB_LBSID_debugExec($id,"Keine Antwort vom awattar-Server erhalten ".$httpCode." | ".$head,5);
    }
    LB_LBSID_debugExec($id,"Ende ",7);
    sql_disconnect();
    
    function LB_LBSID_debugExec($id,$s,$l) {
    $a=array("Emergency","Alert","Critical","Error","W arning","Notice","Informational","Debug");
    $E=logic_getInputs($id);
    $DEBUG=$E[6]['value'];
    $l<$DEBUG && writeToCustomLog("LBSLBSID",$l,"(ID$id) ".$a[$l].": ".$s);
    }
    ?>
    ###[/EXEC]###

    Einen Kommentar schreiben:


  • nullo83
    antwortet
    Hallo Roland, schick dir eine PN. ich hab momentan das problem, dass ich die daten nicht abrufen kann, ich bekomme keine verbindung zu awattar. Hab das seit ich auf Edomi 2 upgedated habe....

    Einen Kommentar schreiben:


  • Roland81
    antwortet
    Finde den LBS nicht in der DB. Könntest du ihn mir schicken?

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Super, vielen Dank!

    Einen Kommentar schreiben:


  • nullo83
    antwortet
    Hi Andi,

    die beiden LBS sind fertig und haben auch schon 4 user eine zeit lang im einsatz. Werde sie im laufe der kommenden woche zum download freigeben.

    Mittlerweile sowohl für DE als auch AT geeignet


    Lg

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von nullo83 Beitrag anzeigen
    hab mittlerweile einen LBS gemacht der die Strompreise einliest und einen zweiten, der mit eben aus der Start, der Endzeit und ev Dauer den besten Zeitpunkt für den Verbraucher ermittelt.
    gibt es hier schon was neues? Ich bin grad auch am überlegen zu AWATTAR zu wechseln und suche genau so einen LBS...

    Einen Kommentar schreiben:


  • Michael85
    antwortet
    Zitat von givemeone Beitrag anzeigen
    und der Wetterbericht für den nächsten Tag schlecht aussieht, meinen Batteriespeicher mit dem günstigeren Nachtstrom füllen, oder?
    Also wenn jeden Tag ein Zeitfenster gibt wo man Geld bekommt, dann lohnt ja bald der Batteriespeicher ohne PV-Anlage
    Aber da bei uns mit 3 Kindern so gut wie jeden Tag die Waschmaschine läuft, würde ich das mit meiner Frau nicht hinbekommen das die Maschine nur 1x in der Nacht läuft.
    Aber auch ich finde es einen interessanten ansatz.

    Zitat von nullo83 Beitrag anzeigen
    ich hab eigentlich schon alles durchgespielt KO1, KO2
    Das muss eigentlich klappen wenn du dieses so einstellst. Wenn du die iKo aber neu angelegt hast, dann musst du das Projekt auch neu aktivieren.
    Es reicht nicht nur die Visu neu zu aktivieren.

    Einen Kommentar schreiben:


  • fisch3009
    antwortet
    Zitat von nullo83 Beitrag anzeigen
    vielleicht nochmal kurz zurück zum eigentlichen problem der anzeige.
    Im Feld "Beschriftung" fehlt
    Code:
    {#}
    Nur dann wird der Wert aus KO1 (Status) im Visuelement angezeigt, vorausgesetzt, die Farben passen...

    Einen Kommentar schreiben:


  • ak68
    antwortet
    Alternativ könntest Du die Zeiten auch mit diesem LBS in eine Zeitschaltuhr übernehmen:

    LBS19000608

    Einen Kommentar schreiben:


  • mfd
    antwortet
    Zur Ausgangsfrage:
    Es gibt ein Visuelement Tastatureingabe, das nutze ich um bestimmte Vorgaben über die Visu zu machen. Dort bleiben die Werte sichtbar in den Feldern stehen und können jederzeit editiert werden. Vielleicht geht das in die gesuchte Richtung.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • nullo83
    antwortet
    vielleicht nochmal kurz zurück zum eigentlichen problem der anzeige. ich hab jetzt einen drehregler genommen, aber er zeigt mir den wert den ich einstelle nur für die dauer der eingestellten haltezeit an. das KO2 wird nicht gesetzt... was mache ich falsch?
    ich hab eigentlich schon alles durchgespielt KO1, KO2 gleich, unterschiedlich, nur KO1, nur KO2 usw...

    Angehängte Dateien

    Einen Kommentar schreiben:


  • DirtyHarry
    antwortet
    Zitat von beauty Beitrag anzeigen
    Aber ehrlich gesagt wäre mir das zu aufwändig und stressig mich und mein Tagsablauf nach dem Strompreis richten zu müssen.
    Erinnert mich an die Zeiten, zu denen ich noch kein DSL hatte. Online über ISDN, je nach Uhrzeit ein anderer Anbieter, Preise zwischen 0,01 und 10ct pro Minute... War ich froh als diese Zeit rum war. Dann hielt auch ne Flat zum bezahlbaren Preis Einzug.

    Ne Stromflat. 40€ und Strom bis zum abwinken.

    Einen Kommentar schreiben:


  • givemeone
    antwortet
    Ich könnte doch dann auch in der Nacht, wenn ich sogar einen Minusbetrag auf den Stromtarif bekomme, und der Wetterbericht für den nächsten Tag schlecht aussieht, meinen Batteriespeicher mit dem günstigeren Nachtstrom füllen, oder?

    Einen Kommentar schreiben:


  • givemeone
    antwortet
    Zitat von nullo83 Beitrag anzeigen

    ja klar, sobald ich mit dem testen durch bin und ich für die LBS entwicklung freigeschaltet wurde stell ich den rein. sag dir bescheid sobald online
    Schicks mir doch mal vorab per pn, dann kann ich mit testen!

    Einen Kommentar schreiben:

Lädt...
X