hardware:channels:solar_inverters:sma
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| hardware:channels:solar_inverters:sma [2020/09/27 16:20] – 2. versuch Markus mauwjo | hardware:channels:solar_inverters:sma [2020/12/18 13:30] (aktuell) – [SMA Sunny Boy] wasserma | ||
|---|---|---|---|
| Zeile 1262: | Zeile 1262: | ||
| </ | </ | ||
| + | |||
| + | ===== SMA Sunny Boy ===== | ||
| + | Den SMA Sunny Boy kann man per URL auslesen, dazu muss man die Default seite von dem Sunny Boy freischalten, | ||
| + | Dann kann man per request die JSON daten abfragen. | ||
| + | |||
| + | http:// | ||
| + | json response example: | ||
| + | < | ||
| + | ... | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | Hierzu ein python script, dass den aktullen Wert in eine Datei schreibt, die wir dann mit dem vzlogger auslesen können: | ||
| + | |||
| + | < | ||
| + | import requests | ||
| + | import time | ||
| + | import logging | ||
| + | import argparse | ||
| + | |||
| + | |||
| + | logging.basicConfig( | ||
| + | level=logging.INFO, | ||
| + | format=" | ||
| + | handlers=[logging.StreamHandler()], | ||
| + | ) | ||
| + | |||
| + | sma_host = : str = None | ||
| + | out_put_file | ||
| + | |||
| + | def pullData(): | ||
| + | try: | ||
| + | data = requests.get( | ||
| + | " | ||
| + | ).json() | ||
| + | value = data[" | ||
| + | logging.debug(data) | ||
| + | if value: | ||
| + | return value | ||
| + | except Exception as e: | ||
| + | logging.error(" | ||
| + | return -1 | ||
| + | |||
| + | |||
| + | def main(): | ||
| + | while True: | ||
| + | value = pullData() | ||
| + | if value != -1: | ||
| + | if out_put_file: | ||
| + | f = open(out_put_file, | ||
| + | f.write(str(value)) | ||
| + | f.close() | ||
| + | else: | ||
| + | print(value) | ||
| + | time.sleep(5) | ||
| + | |||
| + | |||
| + | if __name__ == " | ||
| + | print(" | ||
| + | parser = argparse.ArgumentParser() | ||
| + | parser.add_argument(" | ||
| + | parser.add_argument(" | ||
| + | args = parser.parse_args() | ||
| + | |||
| + | if not args.sma: | ||
| + | print(" | ||
| + | exit(-1) | ||
| + | |||
| + | #global sma_host | ||
| + | | ||
| + | sma_host = args.sma | ||
| + | print(" | ||
| + | |||
| + | if args.out: | ||
| + | out_put_file = args.out | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | | ||
| + | |||
| + | main() | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | vzlogger.conf file meter: | ||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
hardware/channels/solar_inverters/sma.1601216448.txt.gz · Zuletzt geändert: von mauwjo