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 Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
hardware:channels:solar_inverters:kostal_pico [2019/06/04 14:57] zugschlushardware:channels:solar_inverters:kostal_pico [2019/06/04 16:10] – [Ansatz 2: vzlogger exec-Channel] Add the code zugschlus
Zeile 210: Zeile 210:
 ===== Ansatz 2: vzlogger exec-Channel ===== ===== Ansatz 2: vzlogger exec-Channel =====
  
-Bei diesem Ansatz erfolgt die Abfrage des Wechselrichters mit einem Shellscript, das vom vzlogger regelmäßig mit einem exec-Channel 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