Ankündigung

Einklappen
Keine Ankündigung bisher.

Nedap Power Router - Solaranlage

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

    HS/FS Nedap Power Router - Solaranlage

    Hat das jemand schon mal im HomeServer umgesetzt z.B. im QC bzw. geht das evtl. mit einer Webabfrage ?

    Home | the PowerRouter

    https://mypowerrouter.com/
    Gruß Andree Czybulski

    #2
    Hey,

    hast du ggf. Neuigkeiten? Ich bin auch auf der Suche nach einer Lösung/Umsetzung für den QC.

    Danke und Grüße
    Michael

    Kommentar


      #3
      Tach zusammen,

      die aktuellen Werte kriege ich jetzt aus dem Wechselrichter in den HS ...

      https://mypowerrouter.com/power_rout...lar_power=true

      XXXXX muss durch die Router-ID ersetzt werden
      - im Portal unter mypowerrouter.com anmelden
      - im Menu oben auf PowerRouter und WR auswählen
      - in der Adressleiste sollte dann was in Richtung
      "https://mypowerrouter.com/power_routers/4711" stehen.
      - 4711 wäre dann die Router-ID

      Da der HS4 leider kein https unterstützt habe ich ein
      http Server programmiert der das "transparent" macht inkl Passwort.

      in der Version 0.1 alpha funktioniert das so:

      - unter Webseiten/IP-Geräte Tab DATEN statt IP/Host-Adresse die Adresse des neuen Servers
      - unter Tab SENDEN URL statt Pfad die komplette URL https://mypowerrouter.com/power_routers/XXXX/....

      Den Drei-Phasen Sensor (Gavazzi) nehme ich in den nächsten Wochen in Angriff
      (MODBus).

      Falls jemand Interesse an dem Server (w32/w64) hat PN an mich.
      Ist wie gesagt 0.1 alpha, geplant sind folgende Erweiterungen:

      - dynamische Parameterübergabe
      - Windowssystemdienst
      - Verarbeitung von gleichzeitigen Anfragen Multithread


      Gruß Alex

      Kommentar


        #4
        Also mittelfristig hätte ich auf jeden Fall Interessen. Mein HS ist noch nicht so,weit, habe aber auch zwei Nedap Powerrouter...

        Gruß,
        Dennis

        Kommentar


          #5
          Hi!

          Muss hier auch nochmal nachhacken. Gibst bereits Neuigkeiten?

          lg

          Schnee

          Kommentar


            #6
            Moin, ich hol das auch mal wieder raus.

            Hat jemand Neuigkeiten?

            Danke und frohes Fest

            Kommentar


              #7
              Tach zusammen,

              bin aktuell von der eigenen Serverlösung auf OpenHab umgeschwenkt ...


              In der Datei openhab.cfg HTTP Binding ergänzen durch:


              httpr1_log.url=https://mypowerrouter.com/power_routers/[IDROUTER]/logs/1hour.json?utf8=%E2%9C%93&normalize_logs=true&incl ude_last_log=true&include_last_state=true&include_ attribute_info=true&solar_power=true&solar_power_i nput1=true&solar_voltage_input1=true&solar_current _input1=true&solar_temperature_input1=true&solar_p ower_input2=true&solar_voltage_input2=true&solar_c urrent_input2=true&solar_temperature_input2=true&d cac_grid_power=true&dcac_grid_voltage=true&dcac_fr equency=true&dcac_local_power=true&dcac_local_volt age=true&battery_state_of_charge=true&battery_bus_ power=true&battery_voltage=true&battery_current=tr ue&battery_pack_temperature=true&platform_grid_pow er=true&grid_sensor_power_l1=true&grid_sensor_volt age_l1=true&grid_sensor_current_l1=true&grid_senso r_power_l2=true&grid_sensor_voltage_l2=true&grid_s ensor_current_l2=true&grid_sensor_power_l3=true&gr id_sensor_voltage_l3=true&grid_sensor_current_l3=t rue&responseContentDataType=json{Authorization: Basic [SECURITY]}


              Im Link folgendes ersetzen:
              [IDROUTER] ersetzen durch eure Router-ID (5stellige Nummer)
              [SECURITY] ersetzen durch base64(username+':'+passwort) Login mypowerrouter.com

              http://www.motobit.com/util/base64-decoder-encoder.asp
              Bei z.B. der Kombination kufuser:kufpasswort sollte folgendes rauskommen a3VmdXNlcjprdWZwYXNzd29ydA==

              Zum Testen alles OHNE httpr1_log.url= in die Adresszeile vom Browser kopieren, wenn alles passt sollte
              eine Menge Daten im JSON Format zurück kommen.

              Weiterer Eintrag holt die Daten alle 30sec ab.

              httpr1_log.updateInterval=30000

              Das gleiche Spiel mit folgendem Eintrag

              httpr1_totals.url=https://mypowerrouter.com/power_routers/[IDROUTER]/production_totals{Authorization: Basic [SECURITY]}
              httpr1_totals.updateInterval=30000


              In der *.items


              Number pr1_solar_power "Solarleistung gesamt [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_power)]"}

              //PV Strang1
              Number pr1_solar_power_input1 "Leistung Eingang1 [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_power_inpu t1)]" , knx=">2/2/10"}
              Number pr1_solar_temperature_input1 "Temperatur Eingang1 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_temperatur e_input1)]"}
              Number pr1_solar_voltage_input1 "Spannung Eingang1 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_voltage_in put1)]"}
              Number pr1_solar_current_input1 "Strom Eingang1 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_current_in put1)]"}

              //PV Strang2
              Number pr1_solar_power_input2 "Leistung Eingang2 [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_power_inpu t2)]"}
              Number pr1_solar_temperature_input2 "Temperatur Eingang2 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_temperatur e_input2)]"}
              Number pr1_solar_voltage_input2 "Spannung Eingang2 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_voltage_in put2)]"}
              Number pr1_solar_current_input2 "Strom Eingang2 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.solar_current_in put2)]"}


              //Battery NUR PR50SB-BS
              Number pr1_battery_state_of_charge "Battery Ladeszustand [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.battery_state_of _charge)]"}
              Number pr1_battery_bus_power "Battery Leistung [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.battery_bus_powe r)]"}
              Number pr1_battery_voltage "Battery Spannung [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.battery_voltage)]"}
              Number pr1_battery_current "Battery Strom [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.battery_current)]"}
              Number pr1_battery_pack_temperature "Battery Temperatur [%.2f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.battery_pack_tem perature)]"}


              //Netz und lokale Verbindung
              Number pr1_dcac_grid_voltage "Netzspannung [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.dcac_grid_voltag e)]"}
              Number pr1_dcac_frequency "Netzfrequenz [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.dcac_frequency)]"}
              Number pr1_dcac_grid_power "Systemleistung [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.dcac_grid_power)]"}
              Number pr1_dcac_local_voltage "Spannung am Local Out [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.dcac_local_volta ge)]"}
              Number pr1_dcac_local_power "Leistung am Local Out [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.dcac_local_power )]"}

              //Nur PR MIT dreiphasen Sensor
              //ansonsten auskommentieren

              Number pr1_platform_grid_power "Sensorleistung [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.platform_grid_po wer)]"}

              Number pr1_grid_sensor_voltage_l1 "Spannung Phase1 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_volt age_l1)]"}
              Number pr1_grid_sensor_current_l1 "Strom Phase1 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_curr ent_l1)]"}
              Number pr1_grid_sensor_power_l1 "Leistung Phase1 [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_powe r_l1)]"}

              Number pr1_grid_sensor_voltage_l2 "Spannung Phase2 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_volt age_l2)]"}
              Number pr1_grid_sensor_current_l2 "Strom Phase2 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_curr ent_l2)]"}
              Number pr1_grid_sensor_power_l2 "Leistung Phase2 [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_powe r_l2)]"}

              Number pr1_grid_sensor_voltage_l3 "Spannung Phase3 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_volt age_l3)]"}
              Number pr1_grid_sensor_current_l3 "Strom Phase3 [%.1f]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_curr ent_l3)]"}
              Number pr1_grid_sensor_power_l3 "Leistung Phase3 [%d]" (Solar84) {http="<[pr1_log:30000:JSONPATH($.last_log.grid_sensor_powe r_l3)]"}


              //PR + dreiphasen Sensor = Werte gesamte Anlage PR1+PR2+ ...
              //PR + einphasen Sensor = Werte PR

              Number pr1_totals_ins_netz_eingespeist "Ins Netz eingespeist [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?eingespeist</label>.*?<span>([0-9\\.]*) kWh</span>.*?)]" }
              Number pr1_totals_vom_netz_bezogen "Vom Netz bezogen [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?vom Netz</label>.*?<span>([0-9\\.]*) kWh</span>.*?)]" }
              Number pr1_totals_solarertrag "Solarertrag [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?Solar Ertrag</label>.*?<span>([0-9\\.]*) kWh</span>.*?)]" }
              Number pr1_totals_eigenverbrauch "Eigenverbrauch [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?Eigenverbrauch</label>.*?<span>([0-9\\.-]*) kWh</span>.*?)]" }
              Number pr1_totals_gespeichert "Gespeichert [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?Gespeichert</label>.*?<span>([0-9\\.-]*) kWh</span>.*?)]" }
              Number pr1_totals_aus_speicher "Aus Speicher [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?Aus Speicher</label>.*?<span>([0-9\\.-]*) kWh</span>.*?)]" }
              Number pr1_totals_backup_verbrauch "Backup Verbrauch [%d]" (Solar84) { http="<[pr1_totals:30000:REGEX((?si).*?Backup Verbrauch</label>.*?<span>([0-9\\.-]*) kWh</span>.*?)]"}


              String pr1_send {udp=">[10.11.251.105:47001:'REGEX((.*))']"}
              String pr1_totals_send {udp=">[10.11.251.105:47001:'REGEX((.*))']"}



              In der *.rules

              rule pr1
              when
              Item pr1_totals_backup_verbrauch received update
              then
              sendCommand(pr1_send,
              "#pr1_solar_power#"+
              pr1_solar_power.state.toString+
              "#pr1_solar_power_input1#"+
              pr1_solar_power_input1.state.toString+
              "#pr1_solar_temperature_input1#"+
              pr1_solar_temperature_input1.state.toString+
              "#pr1_solar_voltage_input1#"+
              pr1_solar_voltage_input1.state.toString+
              "#pr1_solar_current_input1#"+
              pr1_solar_current_input1.state.toString
              )
              end





              2be continued ich habe auch zwei Powerrouter


              Gruß Alex

              Kommentar


                #8
                Hallo Alex,

                besten Dank für die hilfreichen Tipps zur Abfrage der Daten im Nedap Portal.
                Bin selbst mit p-rout angefangen, aber das Portal ist mir persönlich zunächst ausreichend und ich möchte lediglich die Daten der Anlage im Sinne einer Smart Home Anwendung per openhab haben können.

                Aber: ich scheitere an dem Versuch, die Daten mit Deiner obigen URL aus dem Portal abzuholen. Alle Versuche, die Authentisierung im Portal durchzuführen scheitern an einem "HTTP Basic: Access denied."

                Alles unter Linux (Ubuntu 14.04) auf dem Desktop durchgeführt, openhab läuft unterJessie auf einem Raspberry Pi 2 (Version 1.8 production)
                Die Router ID ist ja einfach im Portal festzustellen, getestet habe ich dann mit mehreren Base64 Codierungen: openssl -base64 <<< 'User:Password' oder alternativ mit
                echo -n 'User:Password' | base64

                Ausprobiert via wget und curl: "HTTP Basic: Access denied."
                Bei Eingabe der URL im Browserfenster, egal ob im Chrome oder im Firefox (ohne Cookies im Cache) kommt ein Login Pop-Up in dem die Credentials abgefragt werden.
                Einmal bestätigt kann ich natürlich die Daten aktualisieren lassen, ohne das das Pop-Up erneut kommt.

                Da alle diese Tests negativ verlaufen sind, kann auch das openhab http binding nur Fehlermeldungen ausbringen.
                Was kann hier noch schief laufen?

                Ein Hinweis noch: wenn ich die URL aus dem obigen Text kopiere, ist diese mit zusätzlichen Leerzeichen versehen, die manuell entfernt werden müssen.

                Besten Dank für jeden hilfreichen Tipp!

                Gruß

                Andreas

                Kommentar


                  #9
                  Hi Alex,

                  die Daten kommen nun, auch hier hat wieder das Entfernen von überflüssigen Le er zeichen, auch in den Items Definitionen geholfen.
                  Frage: wozu dient die rule pr1?

                  VG

                  Andreas

                  Kommentar


                    #10
                    Hallo Andreas,

                    habe die Abfragen etc. erstmal nur so ohne großartige
                    Kommentare als Anregung in die "Runde" gestellt.

                    Die rule pr1 versendet die Daten per UPD zusammengefaßt über das
                    item String pr1_send {udp=">[10.11.251.105:47001:'REGEX((.*))']"} weiter.

                    Kann man dann bequem im HS unter IP/EIB Telegramme (Empfang) auseinander nehmen
                    und die Werte auf einer Internen GA abbilden.

                    Weiterhin muss man ein wenig rechnen um Werte wie aktuelle Solarleistung
                    gesamt (mehrere PRs) oder den aktuellen Verbrauch (3 Phasen Sensor)
                    zu ermitteln.

                    Wenn ich es schaffe gibt es am WE ein vernüftig formatiertes Update inkl.
                    Bibliothek für den HS.


                    Die Abfragen für zusammengefassten Daten (PR einzeln oder gesamte Anlage)
                    aktuelle Stunde, Woche, Monat und Jahr habe ich jetzt auch.


                    Wie schon schon erwähnt ... 2be continued ...


                    Gruß Alex

                    Kommentar


                      #11
                      Hallo Alex,

                      danke für die gute Vorarbeit!
                      Ja gerechnet habe ich bereits. Das interessante ist ja nun für mich die (errechnete) Information den überschüssigen Strom einer sinnvollen Verwendung zuzuführen, bevor er verschenkt werden muss (bin halt spät ins Thema eingestiegen).
                      Damit ist ein Meilenstein in der Abfrage der Nedap Portaldaten fertig. Bleibt zu hoffen das uns diese Möglichkeit noch lange erhalten bleibt und Nedap nicht den Kanal sperrt.

                      Gruß

                      Andreas

                      Kommentar


                        #12
                        Hallo zusammen,

                        ich habe mir ein PHP Skript geschrieben, welches den Batterieladezustand liefern soll.
                        Leider funktioniert die Autorisierung nicht.

                        Ich habe die Abfrage wie beschrieben gemacht und die Leerzeichen entfernt.

                        https://mypowerrouter.com/power_routers/(POWERROUTERID)/logs/2minute.json?utf8=%E2%9C%93&normalize_logs=true%20 &battery_state_of_charge=true&battery_bus_%20power =true%20&responseContentDataType=json{Authorizatio n:%20Basic(USER*PASSWORT*umgewandelt)}

                        Danke!

                        Grüße

                        Christian

                        Kommentar


                          #13
                          Moin zusammen,

                          die Abfragen funzen einwandfrei (sogar mit langer PR-ID von 16 Zeichen).
                          Eine Frage habe ich noch: Wie komme ich an die Event-Daten und deren Interpretation?

                          Viele Grüße aus Norddeutschland und frohe Ostern!

                          ...man liest sich...

                          michritoba
                          ...man liest sich...

                          /michritoba/

                          Kommentar


                            #14
                            Hallo zusammen,

                            für Abfrage der "Totals" z.B. ("Ins Netz eingespeist") hat Nedap
                            die Antwortzeit hochgesetzt
                            Timeout >10sec setzen!!!

                            In der openhab.cfg unter

                            ############################### HTTP Binding ##########################################

                            # timeout in milliseconds for the http requests (optional, defaults to 5000)
                            http:timeout=20000

                            auf 20000 setzen.



                            @michritoba

                            schau Dir Mal die JSON Abfrage an ...

                            "include_last_log=true&include_last_state=true &inc lude_attribute_info=true"

                            Da kommen noch ein bischen mehr Daten als ich in meinem Beispiel auswerte ...

                            Gruß Alex
                            Zuletzt geändert von ruri; 28.03.2016, 20:22.

                            Kommentar


                              #15
                              Hallo,

                              ich versuchs auch gerade, aber es will nicht so wie ich das gerne hätte. Ich hab sogar schon den traffic im Chrome mitgeschreiben und kann sogar per curl die Daten abholen. Probier ich es im Browser geht nix.
                              Bei Euch geht es aber schon noch?

                              Grüße,
                              -thomas

                              Kommentar

                              Lädt...
                              X