Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:solar_inverters:kostal_pico

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
hardware:channels:solar_inverters:kostal_pico [2019/06/04 16:08] – Link zur exec-Doku zugschlushardware:channels:solar_inverters:kostal_pico [2019/06/04 16:10] – [Ansatz 2: vzlogger exec-Channel] Add the code zugschlus
Zeile 212: Zeile 212:
 Bei diesem Ansatz erfolgt die Abfrage des Wechselrichters mit einem Shellscript, das vom vzlogger regelmäßig mit einem vzlogger [[software:controller:vzlogger:vzlogger_conf_parameter#exec|exec-Kanal]] aufgerufen wird. Ein dedizierter Cronjob oder vzclient sind hierbei nicht notwendig. Dieser Ansatz wurde verifiziert im Juni 2019 mit einem Kostal Piko 4.2 und Debian buster. Bei diesem Ansatz erfolgt die Abfrage des Wechselrichters mit einem Shellscript, das vom vzlogger regelmäßig mit einem vzlogger [[software:controller:vzlogger:vzlogger_conf_parameter#exec|exec-Kanal]] aufgerufen wird. Ein dedizierter Cronjob oder vzclient sind hierbei nicht notwendig. Dieser Ansatz wurde verifiziert im Juni 2019 mit einem Kostal Piko 4.2 und Debian buster.
  
 +Script (exec-pvwr):
 +<code>
 +#!/bin/bash
 +# curl --silent http://pvserver:password@pvwr01.example/index.fhtml
 +#  | html2text | grep --max-count=1 'aktuell.*Gesamtenergie'
 +#  aktuell    50   WGesamtenergie 23257   kWh                            
 +
 +# catch errors
 +
 +set -u
 +set -e
 +
 +# preliminaries
 +
 +HOSTNAME="$1"
 +shift
 +REPEAT="$1"
 +shift
 +READINGS="$*"
 +USERNAME="pvserver"
 +PASSWORD="password"
 +URL="http://${USERNAME}:${PASSWORD}@${HOSTNAME}/index.fhtml"
 +REGEXP="aktuell.*Gesamtenergie"
 +
 +# SC2034
 +for repeat in $(seq 1 "${REPEAT}"); do
 +        NOW="$(date +%s)"
 +
 +        CURLOUT="$(curl --silent "${URL}" | html2text | grep --max-count=1 "${REGEXP}")"
 +
 +        # pull requested readings from curl output
 +
 +        for READING in $READINGS; do
 +                case "$READING" in
 +                  "Gesamtenergie"|"aktuell")
 +                        OUTPUT="$(printf "%s\\n" "${CURLOUT}" | sed -n "/.*${READING}[[:space:]]\\+\\([[:digit:]]\\+\\).*/{s//\\1/;p;q;}")"
 +                        # PVWR prints "x x x" in the dark, that is parsed
 +                        # into the empty string by the sed regexp, make
 +                        # that zero here
 +                        printf "%d: %s = %d\\n" "${NOW}" "${READING}" "${OUTPUT:-0}"
 +                        ;;
 +                  *)
 +                        # we don't have what the user asked for, print error message
 +                        printf >&2 "no reading %s\\n" "${READING}"
 +                        exit 1
 +                        ;;
 +                esac
 +        done
 +        if [ "${repeat}" != "${REPEAT}" ]; then
 +                sleep 30
 +        fi
 +done
 +</code>
 +
 +==== vzlogger.conf ====
 +
 +<code>
 +        {
 +            "enabled": true,
 +            "allowskip": true,
 +            "protocol": "exec",
 +            "command": "/path/to/script WR-Address numloops Gesamtenergie aktuell",
 +                       "format": "$t: $i = $v",
 +            "interval": 30,
 +            "channels":  [
 +                {
 +                    "uuid": "",
 +                    "identifier": "aktuell",
 +                    "middleware": ""
 +                },
 +                {
 +                    "uuid": "",
 +                    "identifier": "Gesamtenergie",
 +                    "middleware": ""
 +                }
 +            ]
 +        }
 +</code>
 ===== Weiterführende Links ===== ===== Weiterführende Links =====
  
 [[:howto:emh_pv-anlage|Script für Gesamt- u. Direktverbrauch]] [[:howto:emh_pv-anlage|Script für Gesamt- u. Direktverbrauch]]
  
hardware/channels/solar_inverters/kostal_pico.txt · Zuletzt geändert: 2022/04/21 22:12 von jau