Plugin: Easee Home - Wallbox

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • fs79
    Smart Home'r
    • 25.04.2019
    • 52

    #46
    hismastersvoice
    Ich spiele gerade mit dem Plugin. Funktioniert sehr gut.
    Mir ist aber etwas aufgefallen.
    Wenn mir der Config Endpunkt der Cloud
    Code:
    {
    "isEnabled": false,
    "lockCablePermanently": true,
    "authorizationRequired": true,
    "remoteStartRequired": false,
    "smartButtonEnabled": false,
    "wiFiSSID": "xxxxWIFI",
    "detectedPowerGridType": 1,
    "offlineChargingMode": 0,
    "circuitMaxCurrentP1": 40,
    "circuitMaxCurrentP2": 40,
    "circuitMaxCurrentP3": 40,
    "enableIdleCurrent": false,
    "limitToSinglePhaseCharging": null,
    "phaseMode": 2,
    "localNodeType": 2,
    "localAuthorizationRequired": false,
    "localRadioChannel": 6,
    "localShortAddress": 1,
    "localParentAddrOrNumOfNodes": 0,
    "localPreAuthorizeEnabled": true,
    "localAuthorizeOfflineEnabled": true,
    "allowOfflineTxForUnknownId": true,
    "maxChargerCurrent": 32,
    "ledStripBrightness": 100,
    "chargingSchedule": null
    }
    anzeigt,
    dann sehe ich im MQTT nichts von den Werten die hier auf "false" stehen.

    Hab mir eine kleine Log Schleife gebaut.
    Code:
    if ($config['send_mqtt'] == 1) {
    send_mqtt($id, $data);
    foreach($data as $x => $val) {
    log_i($x, $val, $file_log_i);
    }
    Da sehe ich das.
    Code:
    INFO: 2021-11-15 22:15:50 -
    "isEnabled"
    INFO: 2021-11-15 22:15:50 - 1
    "lockCablePermanently"
    INFO: 2021-11-15 22:15:50 - 1
    "authorizationRequired"
    INFO: 2021-11-15 22:15:50 -
    "remoteStartRequired"
    INFO: 2021-11-15 22:15:50 -
    "smartButtonEnabled"
    Es sieht so aus, als wenn die Parameter die "false" gesetzt sind, nicht bei MQTT auf 0 gesetzt werden.
    Wenn die Parameter auf "true" stehen, sehe ich eine 1 im MQTT.
    Das ist auch das, was ich sehe. "false" Werte werden im MQTT nicht gesetzt, sondern nur wenn die Werte "true" sind.

    Hab leider zuwenig Ahnung von deinem Plugin um das zu lösen, kann leider nur anfragen und hoffen das ich hier nicht zuviel Stuss erzähle. ;-)

    Kommentar


    • hismastersvoice
      hismastersvoice kommentierte
      Kommentar bearbeiten
      Das sollte eigentlich covert boolenas im MQTT Plugin machen.
      Müsste mal kontrollieren ob die Werte überhaupt an MQTT gesendet werden. Aber ich denke schon.
      Schau ich mir morgen mal an.

    • fs79
      fs79 kommentierte
      Kommentar bearbeiten
      Wenn ich irgendwo unterstützen kann, dann meld dich einfach.
  • hismastersvoice
    Supermoderator
    • 25.08.2015
    • 7328

    #47
    fs79
    Hab mir gerade nochmal nachgeschaut.
    Ich habe keine Boolean-Werte oder NULL, das liegt daran das eine ich diese direkt schon zu 0/1 bearbeite.

    /opt/loxberry/webfrontend/html/plugins/easee_home/easee_functions.php
    function change_booleans_to_numbers

    Wenn du Testen willst kannst du in der o.g. Dateien

    Zeile 87-91 auskommentieren
    PHP-Code:
    // foreach ($message as $i => $value) {
    //if (empty($value))
    //$message[$i] = 0;
    //}
    //$message = change_booleans_to_numbers($message); 
    

    Im Broker kommen auch genau die Werte bei mir an.
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 16-11-_2021_09-59-54.jpg
Ansichten: 925
Größe: 108,6 KB
ID: 325524

    Was du in mit dem direkten Abfragen in der Could bekommt ist unbearbeitet.
    Somit funktioniert "bei mir" alles wie es soll.

    Mich interessiert nicht was du aus der Cloud bekommst, mich interessiert was du aus dem Plugin bekommst.
    Aktiviere die Ausgange json im Plugin und gib den Befehl im Browser ein.


    Dann sollte es so aussehen wie oben.

    Selbst bei direkter Cloud Abfrage false bekommen, es ist tatsächlich so das ich true oder 0 bekomme.
    Ob das ein Bug ist...??

    Wenn du Werte nicht im MQTT siehst kannst du zB mit MQTT Explorer (Windows Store) alle Daten im Broker anzeigen.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 16-11-_2021_10-08-52.jpg
Ansichten: 951
Größe: 27,9 KB
ID: 325525




    Kein Support per PN!

    Kommentar

    • fs79
      Smart Home'r
      • 25.04.2019
      • 52

      #48
      OK, im JSON kommt
      Code:
      "EHxxxx_isEnabled":0
      aber im MQTT wird kein Eintrag erzeugt mit Value 0 erzeugt.
      Schaue mir das später noch genauer an, dank dir für deine Hinweise.

      Kommentar

      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7328

        #49
        Klar wird der erzeugt...
        Hier mal kurz ein Video wenn ich die Wallbox aus/ein schalte hochgeladen.
        Hier wird per MQTT die Abfrage ausgelöst wenn die Box ein ist.


        Denke mal wenn das ein generelles Problem wäre hätten es auch schon andere bemerkt.

        orli
        Wie ist es bei dir?
        Kommen alle Werte wie sie sollen?
        Kein Support per PN!

        Kommentar


        • fs79
          fs79 kommentierte
          Kommentar bearbeiten
          Ich habe es auskommentiert, wie du geschrieben hast. Da sind die Werte sauber.
          Was nicht passt ist, das Werte die false bzw. dann 0 sind im MQTT ankommen.
          Bei der ausgeschalteten Wallbox finde ich im MQTT z.Bsp. den isEnabled nicht.
          Bei der eingeschalteten Wallbox steht der auf 1.

        • hismastersvoice
          hismastersvoice kommentierte
          Kommentar bearbeiten
          Wie du am Video siehst funktioniert es und liegt wohl an einer Einstellung bei dir, evtl. am Broker?
          Eigentlich habe ich die Umwandlung genau deswegen im Plugin gemacht damit man am Broker nichts dazu einstellen muss.
          Ich kann nur sagen das es bei mir so funktioniert.
          Habe es jetzt mehrfach getestet und auch jedes mal den Boker kpl. geleert.

        • fs79
          fs79 kommentierte
          Kommentar bearbeiten
          Das heisst bei dir schaltet der "isEnabled" auch wieder auf 0?
          Ausschalten kommt bestimmt ab Sekunde 6, oder?
          Dein Video zeigt 13 sek an, geht aber nur bis sek 6.
          Zuletzt geändert von fs79; 16.11.2021, 20:25.
      • fs79
        Smart Home'r
        • 25.04.2019
        • 52

        #50
        Mmmh, verstehe ich nicht.
        Wenn von Easee "0" kommt geht es gut.
        Code:
         "offlineChargingMode": 0,
        Wenn von Easee "false" kommt.
        Code:
        "isEnabled": false,
        bleibt es im MQTT leer.
        Verstehe ich nicht, aber es sieht auch so aus als wenn mit send_mqtt nichts gesendet wird.

        Wenn ich auf leere Feld im $data filtere bekomme ich das.
        Prüfen auf leeres Feld im easee.php
        Code:
        if ($config['send_mqtt'] == 1) {
        send_mqtt($id, $data);
        foreach($data as $x => $val) {
        if (empty($val)){ log_i($x, $val, $file_log_i);}
        }
        }
        Dann bekomme ich diese leeren Felder angezeigt.
        Code:
        INFO: 2021-11-16 12:58:34 -
        "remoteStartRequired"
        INFO: 2021-11-16 12:58:34 -
        "smartButtonEnabled"
        INFO: 2021-11-16 12:58:34 - 0
        "offlineChargingMode"
        INFO: 2021-11-16 12:58:34 -
        "enableIdleCurrent"
        INFO: 2021-11-16 12:58:34 -
        "limitToSinglePhaseCharging"
        INFO: 2021-11-16 12:58:34 -
        "localAuthorizationRequired"
        INFO: 2021-11-16 12:58:34 - 0
        "localParentAddrOrNumOfNodes"
        INFO: 2021-11-16 12:58:34 -
        "chargingSchedule"
        entspricht denen die auf "false" gesetzt sind, wenn man die config abfragt.

        Kommentar

        • hismastersvoice
          Supermoderator
          • 25.08.2015
          • 7328

          #51
          Zuerst werden leere values zu 0 gewandelt
          PHP-Code:
          foreach ($message as $i => $value) {
          if (empty($value))
          $message[$i] = 0; 
          

          Dann wird booleans zu 0/1 gemacht
          PHP-Code:
          $message = change_booleans_to_numbers($message); 
          

          Es gibt also wenn es richtig abläuft keine leere und keine booleans beim Übertrag an den MQTT Broker.
          Warum es bei dir anders sein soll???
          Kein Support per PN!

          Kommentar

          • fs79
            Smart Home'r
            • 25.04.2019
            • 52

            #52
            Hab jetzt folgendes eingefügt in die send_mqtt Funktion.
            Code:
            ##FS
            if (empty($val))
            $val=0;
            ##FS
            Die komplette Funktion
            Code:
            function send_mqtt($id, $message)
            {
            require_once "loxberry_io.php";
            require_once "phpMQTT.php";
            $creds = mqtt_connectiondetails();
            $client_id = uniqid(gethostname()."_client");
            $mqtt = new Bluerhinos\phpMQTT($creds['brokerhost'], $creds['brokerport'], $client_id);
            if( $mqtt->connect(true, NULL, $creds['brokeruser'], $creds['brokerpass'] ) ) {
            foreach($message as $x => $val) {
            ##FS
            if (empty($val))
            $val=0;
            ##FS
            $mqtt->publish("easee/".$id."/".$x, $val, 0, 1);
            }
            $mqtt->close();
            } else {
            echo "MQTT connection failed";
            }
            }
            Damit klappt es.

            Kommentar

            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7328

              #53
              Ich denke ich kenne deinen Fehler...
              Hast du Convert booleans im Broker aus? Wenn ja mach es ein...

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 16-11-_2021_13-47-47.jpg
Ansichten: 787
Größe: 15,2 KB
ID: 325552
              Kein Support per PN!

              Kommentar


              • fs79
                fs79 kommentierte
                Kommentar bearbeiten
                War bei mir eingeschaltet.
            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7328

              #54
              Zitat von fs79
              Hab jetzt folgendes eingefügt in die send_mqtt Funktion.
              Code:
              ##FS
              if (empty($val))
              $val=0;
              ##FS
              Die komplette Funktion
              Code:
              function send_mqtt($id, $message)
              {
              require_once "loxberry_io.php";
              require_once "phpMQTT.php";
              $creds = mqtt_connectiondetails();
              $client_id = uniqid(gethostname()."_client");
              $mqtt = new Bluerhinos\phpMQTT($creds['brokerhost'], $creds['brokerport'], $client_id);
              if( $mqtt->connect(true, NULL, $creds['brokeruser'], $creds['brokerpass'] ) ) {
              foreach($message as $x => $val) {
              ##FS
              if (empty($val))
              $val=0;
              ##FS
              $mqtt->publish("easee/".$id."/".$x, $val, 0, 1);
              }
              $mqtt->close();
              } else {
              echo "MQTT connection failed";
              }
              }
              Damit klappt es.
              ...und wenn du es richtig machen willst.
              PHP-Code:
              
              //SEND MQTT
              function send_mqtt($id, $message)
              {
              require_once "loxberry_io.php";
              require_once "phpMQTT.php";
              
              foreach ($message as $i => $value) {
              if (empty($value))
              $message[$i] = 0;
              }
              $message = change_booleans_to_numbers($message);
              
              $creds = mqtt_connectiondetails();
              $client_id = uniqid(gethostname()."_client");
              $mqtt = new Bluerhinos\phpMQTT($creds['brokerhost'], $creds['brokerport'], $client_id);
              if( $mqtt->connect(true, NULL, $creds['brokeruser'], $creds['brokerpass'] ) ) {
              foreach($message as $x => $val) {
              $mqtt->publish("easee/".$id."/".$x, $val, 0, 1);
              }
              $mqtt->close();
              } else {
              echo "MQTT connection failed";
              }
              } 
              
              Dann wird alles sauber umgewandelt im send_mqtt.

              Ich werde die nächste Version so übernehmen.
              Dann kann wirklich nichts mehr schief gehen.
              Kein Support per PN!

              Kommentar


              • fs79
                fs79 kommentierte
                Kommentar bearbeiten
                Super, Dank Dir.
                Hatte deinen Codeabschnitt reinkopiert aber der Broker füllte sich nicht.
                Ich schaue ob ich falsch kopiert habe, siehst du eventuell einen Fehler irgendwo.
                z.Bsp. am Anfang,
                $value, $i.
                Passt das so?

              • hismastersvoice
                hismastersvoice kommentierte
                Kommentar bearbeiten
                Nimm einfach die ganze Funktion und überschreibe die aktuelle in /opt/loxberry/webfrontend/html/plugins/easee_home/easee_functions.php

              • fs79
                fs79 kommentierte
                Kommentar bearbeiten
                Habe ich jetzt gemacht, klappt trotzdem nicht.
                Broker bleibt leer, kann andere Sachen ausschliessen.
                Hab wirklich nur die Funktion überschrieben mit deiner neuen Funktion.
            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7328

              #55
              Das ist jetzt mein letzter Versuch...
              Ich habe es so wie es bei mir auf 2 Systemen läuft in ein Update gepackt. v0.2.4
              Kein Support per PN!

              Kommentar


              • fs79
                fs79 kommentierte
                Kommentar bearbeiten
                Ich möchte dich nicht ärgern mit meiner Anfrage.
                Deine v.0.2.4 sendet gerade gar nichts mehr Richtung MQTT.
                Ich schaue mir das an und sage dir Bescheid.
            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11238

              #56
              fs79 Kannst du das mal mit einem MQTT Tool (MQTT Spy, MQTT Explorer,…) verifizieren.
              Ich bin mir im MQTT Gateway zwar keiner Schuld bewusst, aber „der Teufel schläft nie!“.
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar


              • fs79
                fs79 kommentierte
                Kommentar bearbeiten
                MQTT Spy, was ist das?
                MQTT Explorer schaue ich mal, ich schaue immer im Webinterface. Vielleicht ist da irgendetwas.
                Auf jeden Fall ist mein Loxberry auf Standard unterwegs, sagt jeder aber bei mir stimmt es. ;-)
                Vor 4 Wochen komplett neu installiert und nur die Plugins installiert, die ich brauche.

              • Christian Fenzl
                Christian Fenzl kommentierte
                Kommentar bearbeiten
                An all-round MQTT client that provides a structured topic overview

                Die Zugangsdaten mit Host loxberry:1883 (oder wie der Hostname/IP deines LoxBerrys ist) und User/PW wie in den Settings im MQTT Gateway Plugin.

              • fs79
                fs79 kommentierte
                Kommentar bearbeiten
                Hi Christian, ich glaube nicht dass es am MQTT Server liegt.
            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7328

              #57
              Ich möchte dich nicht ärgern mit meiner Anfrage.
              Leider tust du das schon ein wenig...
              Ich habe dir weiter oben in Post #47 schon geschrieben das du die Daten mit dem MQTT Explorer kontrollieren sollst.

              Du hast du den Booleans Coverter in MQTT an, der converted aber nicht.
              Ich habe zur Güte das converting ins Plugin übernommen das es nicht vom MQTT Plugin gemacht werden muss.
              Das ist eigentlich nicht nötig, es geht perfekt im MQTT Plugin.

              Ich kann nur sagen das es bei mir und auch bei vielen anderen geht, eben nur bei dir nicht.

              Christian Fenzl
              Es liegt sicher nicht an einem generellen Problem.
              Ich habe mehrmals das MQTT Plugin am laufen, es macht den convert bei allen Systemen.
              Nach meinem erachten stimmt was mit der Installation nicht.
              Kein Support per PN!

              Kommentar

              • fs79
                Smart Home'r
                • 25.04.2019
                • 52

                #58
                hismastersvoice
                Die vorherige Funktion mit meiner quick'n dirty Lösung funktioniert.
                Code:
                {
                require_once "loxberry_io.php";
                require_once "phpMQTT.php";
                $creds = mqtt_connectiondetails();
                $client_id = uniqid(gethostname()."_client");
                $mqtt = new Bluerhinos\phpMQTT($creds['brokerhost'], $creds['brokerport'], $client_id);
                if( $mqtt->connect(true, NULL, $creds['brokeruser'], $creds['brokerpass'] ) ) {
                foreach($message as $x => $val) {
                ##FS
                if (empty($val))
                $val=0;
                ##FS
                $mqtt->publish("easee/".$id."/".$x, $val, 0, 1);
                }
                $mqtt->close();
                } else {
                echo "MQTT connection failed";
                }
                }
                Deine nicht
                Code:
                function send_mqtt($id, $message)
                {
                require_once "loxberry_io.php";
                require_once "phpMQTT.php";
                
                foreach ($message as $i => $value) {
                if (empty($value))
                $message[$i] = 0;
                }
                $message = change_booleans_to_numbers($message);
                
                $creds = mqtt_connectiondetails();
                $client_id = uniqid(gethostname()."_client");
                $mqtt = new Bluerhinos\phpMQTT($creds['brokerhost'], $creds['brokerport'], $client_id);
                if( $mqtt->connect(true, NULL, $creds['brokeruser'], $creds['brokerpass'] ) ) {
                foreach($message as $x => $val) {
                $mqtt->publish("easee/".$id."/".$x, $val, 0, 1);
                }
                $mqtt->close();
                } else {
                echo "MQTT connection failed";
                }
                }
                Sehe da jetzt keinen grossen Unterschied.
                Und hab auch keine Ahnung von php.

                Kann nur copy and paste und ausprobieren. ;-)

                Kommentar


                • hismastersvoice
                  hismastersvoice kommentierte
                  Kommentar bearbeiten
                  Da mach es so, darfst halt kein Update mehr machen.

                • fs79
                  fs79 kommentierte
                  Kommentar bearbeiten
                  Mein Fehler, das Plugin Version 0.2.4 läuft.
              • fs79
                Smart Home'r
                • 25.04.2019
                • 52

                #59
                hismastersvoice
                Mir lässt das keine Ruhe.
                Du hast Recht mit dem MQTT Explorer sehe ich Werte. Entschuldige, dass ich diesen wichtigen Hinweis überlesen habe.
                Mein Learning des Tages, traue der MQTT GUI im Loxberry nicht zu sehr.

                Deine neue Version funktioniert super.
                Zuletzt geändert von fs79; 16.11.2021, 21:32.

                Kommentar


                • hismastersvoice
                  hismastersvoice kommentierte
                  Kommentar bearbeiten
                  Das GUI Stimmt schon, er aktualisiert aber nur neu eintreffende Werte. Hier muss man beim testen den Cache usw. löschen.
                  Der MQTT_Explorer etc. zeigt einfach den kpl. Datenfluss.

                  ...und wieder was dazu gelernt
              • hismastersvoice
                Supermoderator
                • 25.08.2015
                • 7328

                #60
                Gestern habe ich eine Antwort vom Support bekommen.

                .....
                Ich habe leider keine so positiven Nachrichten für dich. Zum jetzigen Zeitpunkt ist es nicht möglich lokal auf den Charger zuzugreifen und Daten abzufragen.

                Wir haben uns dafür entschieden, dass die Kommunikation in allen Fällen über die Cloud API läuft. Hauptsächlich weil es eine höhere Sicherheit und Kontrolle in beiden Richtungen bietet und weil es flexibler und zukunftssicherer ist, da zukünftige Produkte und Funktionen immer Teil der Cloud-API sein werden. Falls wir jemals eine lokale API bereitstellen werden, wird diese im Rahmen eines Industriestandards wie OCPP, Matter oder ähnlichem liegen.

                Generell gilt für alle unsere Endpunkte ein Rate limit von 500 requests per 5 min, außer es steht ein spezifisches rate limit für einen Endpunkt in der Dokumentation (developer.easee.cloud). Was das Thema Metering angeht, arbeiten wir daran das Abfrage Interval zu verkürzen. Zur Zeit wird die geladene Energie in einem Ladevorgang ungefähr für jede volle geladene kWh aktualisiert, über folgenden Endpunkt:
                /api/chargers/{id}/sessions/ongoing
                Sobald wir dies verringert haben, werden wir die Änderungen in unserem Changelog verkünden.

                Die Cloud ist für uns wichtiger Bestandteil unserer Produkte, deshalb arbeiten auch mehrere Entwickler Teams täglich daran, die Cloud aufrecht zu halten und zu verbessern. Wir sind auch transparent was Probleme angeht und man kann immer den aktuellen Status mitverfolgen und wir loggen alle früheren Probleme hier:
                1. Cloud Status https://easee.statuspage.io
                2. Cloud Uptime https://easee.statuspage.io/uptime

                Ich finde das Loxwiki und das Loxforum echt cool und hoffe daher auch, dass wir eine bessere Lösung finden das Easee über die Cloud API kompatibel ist. Ich bin guter Dinge, dass sobald wir das Metering Interval verringert haben, dass dann häufigere Abfragen möglich sind.

                Ich wünsche dir ein schönes Wochenende.
                Insbesondre da es gestern Stabilitätsprobleme gab macht mich die Antwort aber nicht gerade glücklich.
                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: ea (2).jpg
Ansichten: 766
Größe: 7,6 KB
ID: 326013

                Mal sehen was sie sich da noch einfallen lassen.
                Kein Support per PN!

                Kommentar


                • AlexAn
                  AlexAn kommentierte
                  Kommentar bearbeiten
                  Überall der gleiche Käse
              Lädt...