Hallo Zusammen,
anbei zwei FHEM-Module um Daten einer Photovoltaikanlage über eine Sunny Webbox von SMA im FHEM darzustellen. Die Sunny Webbox bietet eine RPC-Schnittstelle über Ethernet an und kann mit http oder UDP angesprochen werden. Z.Z. ist in den Modulen nur http Abfragen integriert, da ich UDP noch nicht zum Laufen bekommen habe.
define <name> SMAWebbox <ip-address> http|udp
z.B. define SMAwb SMAWebbox 192.168.0.168 http
Das erste Modul liest allgemeine Werte und die Devices aus der Webbox aus und speichert sie in den Readings. Außerdem wird die Aktuelle Leistung über einen Zeitraum gemittelt.
Das Intervall der Abfrage und der Mittelwertberechnung kann über SET geändert werden. Standardwerte für die Abfrage ist 30 Sekunden und für den Mittelwert 300 Sekunden. Der Mittelwert wird als Event gespeichert.
define <name> SMADevice <Webbox name> <Devicenr.>
z.B. define WR SMADevice SMAwb 1
Das zweite Modul holt dann die Werte des Devices. URL, Protocol, Device-ID und Intervalle werden aus dem ersten Modul gelesen. Werte die man Loggen möchte müssen über das Attribut LogValues angegeben werden.
attr WR LogValues <Wert1>, <Wert2>, ... , <WertN>
Über diese Werte wird der Mittelwert gebildet und mit einem vorgestellten Unterstrich als Readings gespeichert. Welche Werte man sinnvollerweise logt entnimmt man der technischen Dokumentation.
Damit die Module laufen, musste ich noch folgende Perl-Libraries auf meinem RaspPi installieren:
apt-get install libjson-perl
apt-get install libmath-round-perl
Zum Screenshot: Ich habe einen SunnyBoy 5000 Wechselrichter, ein Sunny Backup und die Sunny Webbox von SMA.
Gruß
kohlenmacher
Hi Kohlenmacher,
vielen Dank für das Modul. Läuft! ;-)
Würde es Dir was ausmachen, Deine Einstellungen für das Logging (Values, wann Durchschnittsbildung usw.) und das SVG zu posten? Evtl. auch ein Tipp, um das Loggingvolumen zu verringern, da Nachts ja mehrere Stunden nix läuft?
Vielen Dank nochmals!
Grüsse
LuckyLuis
PS: Planst Du, die Skripte in das FHEM-Repo zu stellen?
Hallo LuckyLuis,
freut mich, dass das Modul läuft.
Ich habe die Standard Werte für das Loggen gelassen.
1. weil in der Schnittstellen Beschreibung steht, dass man nicht häufiger als alle 30 Sek. einen Request an die Webbox schicken soll. Halte ich mich zwar eigentlich nicht dran, da erst die Webbox Daten und anschließend die Devices abgefragt werden. Testweise hatte ich es auch schon auf 5 Sek. und lief ohne Probleme. Die Datenmenge in den Logs war mir dann allerdings zu groß.
2. die Webbox schickt z.Z. die Durchschnittswerte von 5 Min. ins Portal. Somit kann ich die Kurven vergleichen.
Bei den Plots habe ich eine Kopie vom power4.glot verwendet. K.A. ob das das richtige Vorgehen war.
Hier die Config Einträge:
define FileLog_SMAWB FileLog ./log/SMA_Webbox-%Y-%m.log SMAwb
attr FileLog_SMAWB logtype power4:Power,text
define SVG_SMAWebbox SVG FileLog_SMAWB:SVG_SMAWebbox:CURRENT
Um das Loggingvolumen zu verringern könnte ich noch einbauen das nur die Durchschnittswerte geloggt werden.
Z.Z. beabsichtige ich nicht das Script ins FHEM-Repo zu stellen.
Gruß
Kohlenmacher
Hallo Kohlmacher,
herzlichen Dank, das Modul läuft.
Ich hätte nur eine Bitte um Hilfe:
Ich würde gerne aus der Solarleistung die Helligkeit für Tageslichtabhängige Leuchten in einen Dummy schreiben.
dies ist der Versuch:
define act_on_hell notify solar:Gemittelte_Leistung: > 5000 {fhem ("set AUSSEN_HELL hell")}
der funktioniert leider nicht
Schon mal vielen Dank
Hallo hofzumberg,
im WIKI zum Notify (http://www.fhemwiki.de/wiki/Notify (http://www.fhemwiki.de/wiki/Notify)) ist ein Beispiel.
Demnach sollte es so gehen:
define act_on_hell notify (solar:Gemittelte_Leistung.*) {
if ($EVTPART1 > 5000 ) { fhem("set AUSSEN_HELL hell");}}
Gruß
Kohlenmacher
Zitat von: kohlenmacher am 04 September 2014, 14:39:53
Hallo Zusammen,
anbei zwei FHEM-Module um Daten einer Photovoltaikanlage über eine Sunny Webbox von SMA im FHEM darzustellen. Die Sunny Webbox bietet eine RPC-Schnittstelle über Ethernet an und kann mit http oder UDP angesprochen werden. Z.Z. ist in den Modulen nur http Abfragen integriert, da ich UDP noch nicht zum Laufen bekommen habe.
....
Gruß
kohlenmacher
Verständnisfrage: Wozu die Webbox, meine SMA hat doch schon Ethernetanschluss, da macht es doch wenig Sinn über eine weitere Schnittstelle Daten aus dem Wechselrichter zu holen, um Sie dann wieder ins www zu bringen. Oder anders gefragt: muss ich mir jetzt noch ein Webbox kaufen um meine SMA mit FHEM zu verbinden?
Hallo Jürgen,
die Webbox ist für die äteren Wechselrichter mit RS485 Schnittstelle.
Ob die neueren WR mit Ethernet das gleiche Protokoll haben, kann ich dir leider nicht sagen.
Gruß
Kohlenmacher
Danke, ich werde mir das bei Gelegenheit mal anschauen.
Hallo zusammen,
ich habe das Modul eingebaut, bekomme jedoch immer wieder eine Meldung : Unknown Modul SMAWebbox !
Wie würde denn ein kompletter Code aussehen wenn man die Werte von 3 WR auslesen möchte ? Zusätzlich
betreibe ich noch eine Wetterstation die auch auf der Webbox Daten speichert ?
Bekomme es leider nicht zum laufen
Könnt Ihr mir helfen ?
Gruß Dirk
Hallo Dirk,
wie sieht den deine Konfiguration bzl. der SMAWebbox aus.
Bei 3 WR sollte sie ungefähr so aussehen:
define SMAwb SMAWebbox 192.168.0.168 http
define WR1 SMADevice SMAwb 1
define WR3 SMADevice SMAwb 2
define WR3 SMADevice SMAwb 3
Die IP ist nur ein Beispiel.
Wie kann man den eine Wetterstation an die Webbox anschließen? Sicher das wir vom selben Gerät sprechen?
Gruß
Kohlenmacher
Hallo Kohlenmacher,
ERROR:
Unknown module SMAWebbox Unknown module SMADevice Unknown module SMADevice Unknown module SMADevice Please define WR1 first Please define WR2 first Please define WR3 first
Das ist das was die Fhem mir ausgibt :-(
Leider funktioniert es nicht ! Es einmal kurz funktioniert, danach hat er die Fhem nicht mehr gestartet und ist in einen
Error gelaufen. Habe die Dateien erneuert und nun erhalte ich das !
Die Meteostation ist von der Fa. Lufft und wurde von SMA vertrieben :-(
Gruß Dirk
Neues aus dem .log
Error messages while initializing FHEM: configfile: Unknown module SMAWebbox Unknown module SMADevice Unknown module SMADevice Unknown module SMADevice Please define WR1 first Please define WR2 first Please define WR3 first
2014.12.10 11:53:49 1: reload: Error:Modul 25_SMAWebbox deactivated:
2014.12.10 11:54:01 1: configfile: Unknown module SMAWebbox
2014.12.10 11:54:08 2: Error messages while initializing FHEM: configfile: Unknown module SMAWebbox Unknown module SMADevice Unknown module SMADevice Unknown module SMADevice Please define WR1 first Please define WR2 first Please define WR3 first
2014.12.10 11:54:13 1: reload: Error:Modul 25_SMAWebbox deactivated:
Cmd: >define WR1 SMADevice SMAwb 1<
Line 305090: 2014.12.10 12:36:26 5: Loading ./FHEM/26_SMADevice.pm
Line 305091: 2014.12.10 12:36:26 1: reload: Error:Modul 26_SMADevice deactivated:
Line 305093: 2014.12.10 12:36:26 5: Cmd: >define WR2 SMADevice SMAwb 2<
Line 305094: 2014.12.10 12:36:26 5: Cmd: >define WR3 SMADevice SMAwb 3<
Falls ich das versuche nachzustellen, dann steht bei mir im Logfile mehr:
Zitat2014.12.10 17:52:24.899 1: reload: Error:Modul 25_SMAWebbox deactivated:
Can't locate JSON.pm in @INC (@INC contains: ...)
Ob das auch hier die Ursache ist, weiss ich nicht.
Und wie man JSON.pm installiert, soll auch jemand anderes erklaeren :)
ZitatOb das auch hier die Ursache ist, weiss ich nicht.
Und wie man JSON.pm installiert, soll auch jemand anderes erklaeren
Bei mir ist keine JSON.pm vorhanden. Daher schließe ich das als Fehler aus.
Aber JSON ist ein gutes Stichwort. Sind die JSON-Libraries von Perl installiert?
Auf welcher Plattform läuft dein FHEM?
Als erstes solltest Du nur das SMAWebbox-Modul einbauen. Erst wenn das eine korrekte Antwort von der Webbox bekommt, solltest Du die Devices anlegen.
Stell das Logging des Moduls mal auf 5. (attr SMAwb verbose 5)
Huhu,
Danke erstmal für Eure Mühe !
System ist ein Raspi und ich habe mich an Deine Anweisungen gehalten !
Habe das Loglevel jetzt mal so eingerichtet. Er schreibt das aber auch ins Log der Fhem ?
Gruß Dirk
Ich bin gerade dabei mein System neu aufzusetzen.
Da habe ich dann mal die Webbox vorgezogen. Datei ins FHEM Verzeichnis kopiert, dann das define eingegeben und siehe da das gleiche Problem.
Nach einem "shutdown restart" hat es dann aber funktioniert.
Ansonsten habe ich schon an ein Rechteproblem gedacht.
mmmmmm im Log erscheint nicht mehr als vorher auch .... seltsam ob ich auch den Weg des neu Aufsetzens gehen muss ::)
Jetzt wo ich gerade die Funksteckdosen integriert habe :-(
Zitat2014.12.10 21:20:36 1: Including fhem.cfg
2014.12.10 21:20:36 5: Cmd: >attr global userattr devStateIcon devStateStyle fm_type fp_Dachgeschoss fp_Heizungsschema fp_Wohnung icon sortby webCmd<
2014.12.10 21:20:36 5: Cmd: >attr global autoload_undefined_devices 1<
2014.12.10 21:20:36 5: Cmd: >attr global backup_before_update 1<
2014.12.10 21:20:36 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2014.12.10 21:20:36 5: Cmd: >attr global modpath .<
2014.12.10 21:20:36 5: Cmd: >attr global motd SecurityCheck:
telnetPort has no password/globalpassword attribute.
Restart fhem for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.
<
2014.12.10 21:20:37 5: Cmd: >attr global sendStatistics never<
2014.12.10 21:20:37 5: Cmd: >attr global statefile ./log/fhem.save<
2014.12.10 21:20:37 5: Cmd: >attr global uniqueID ./FHEM/FhemUtils/uniqueID<
2014.12.10 21:20:37 5: Cmd: >attr global verbose 5<
2014.12.10 21:20:37 5: Cmd: >define telnetPort telnet 7072 global<
2014.12.10 21:20:37 3: telnetPort: port 7072 opened
2014.12.10 21:20:37 5: Cmd: >attr telnetPort verbose 5<
2014.12.10 21:20:37 5: Cmd: >define WEB FHEMWEB 8083 global<
2014.12.10 21:20:37 3: WEB: port 8083 opened
2014.12.10 21:20:37 5: Cmd: >attr WEB basicAuth <
2014.12.10 21:20:37 5: Cmd: >attr WEB refresh 10<
2014.12.10 21:20:37 5: Cmd: >attr WEB stylesheetPrefix ios7smallscreen1<
2014.12.10 21:20:37 5: Cmd: >define WEBphone FHEMWEB 8084 global<
2014.12.10 21:20:37 3: WEBphone: port 8084 opened
2014.12.10 21:20:37 5: Cmd: >attr WEBphone basicAuth <
2014.12.10 21:20:37 5: Cmd: >attr WEBphone longpoll 1<
2014.12.10 21:20:37 5: Cmd: >attr WEBphone refresh 30<
2014.12.10 21:20:37 5: Cmd: >attr WEBphone stylesheetPrefix dark<
2014.12.10 21:20:37 5: Cmd: >define WEBtablet FHEMWEB 8085 global<
2014.12.10 21:20:37 3: WEBtablet: port 8085 opened
2014.12.10 21:20:37 5: Cmd: >attr WEBtablet basicAuth <
2014.12.10 21:20:37 5: Cmd: >attr WEBtablet longpoll 1<
2014.12.10 21:20:37 5: Cmd: >attr WEBtablet refresh 30<
2014.12.10 21:20:37 5: Cmd: >attr WEBtablet stylesheetPrefix ios7smallscreen2<
2014.12.10 21:20:37 5: Cmd: >define Logfile FileLog ./log/fhem-%Y-%m.log fakelog<
2014.12.10 21:20:37 5: Cmd: >define aWetter weblink iframe http://www.wetteronline.de/?PLZ=&pid=p_city_hpweather<
2014.12.10 21:20:37 5: Cmd: >attr aWetter room Heizungsraum<
2014.12.10 21:20:37 5: Cmd: >define initialUsbCheck notify global:INITIALIZED usb create<
2014.12.10 21:20:37 5: Cmd: >define NTFY_BackupRun at *08:00:00 set SYS_Backup Ausführen<
2014.12.10 21:20:37 5: Cmd: >attr NTFY_BackupRun room Server<
2014.12.10 21:20:37 5: Cmd: >define Heizungsschema FLOORPLAN<
2014.12.10 21:20:37 5: Cmd: >attr Heizungsschema fp_arrange WEB<
2014.12.10 21:20:37 5: Cmd: >attr Heizungsschema room Grundrisse<
2014.12.10 21:20:37 5: Cmd: >attr Heizungsschema stylesheet darkfloorplanstyle.css<
2014.12.10 21:20:37 5: Cmd: >define Wohnung FLOORPLAN<
2014.12.10 21:20:37 5: Cmd: >attr Wohnung fp_arrange WEB<
2014.12.10 21:20:37 5: Cmd: >attr Wohnung room Grundrisse<
2014.12.10 21:20:37 5: Cmd: >attr Wohnung stylesheet darkfloorplanstyle.css<
2014.12.10 21:20:37 5: Cmd: >define Temperatursensoren GPIO4 BUSMASTER<
2014.12.10 21:20:37 4: GPIO4: GPIO4_Define(Temperatursensoren)
2014.12.10 21:20:37 5: Cmd: >define FileLog_ASensorenEltern FileLog /var/log/fhem/ASensorenEltern-%Y.log PufferU:(temperature)|Sensor3:(temperature).*<
2014.12.10 21:20:37 5: Cmd: >attr FileLog_ASensorenEltern logtype ASensorenEltern:Plot,text<
2014.12.10 21:20:37 5: Cmd: >attr FileLog_ASensorenEltern room Logs<
2014.12.10 21:20:37 5: Cmd: >define weblink_ASensorenEltern SVG FileLog_ASensorenEltern:SensorenE:CURRENT<
2014.12.10 21:20:37 5: Cmd: >attr weblink_ASensorenEltern label "Puffer + WP - überlagert"<
2014.12.10 21:20:37 5: Cmd: >attr weblink_ASensorenEltern room Eltern<
2014.12.10 21:20:37 5: Cmd: >define Sensor1 GPIO4 28-000004a736ce<
2014.12.10 21:20:37 4: GPIO4: GPIO4_Define(Sensor1)
2014.12.10 21:20:38 5: Cmd: >attr Sensor1 alias Vorlauf Ofen<
2014.12.10 21:20:38 5: Cmd: >attr Sensor1 fp_Heizungsschema 220,830,3,temperature,Ofen<
2014.12.10 21:20:38 5: Cmd: >attr Sensor1 model DS18B20<
2014.12.10 21:20:38 5: Cmd: >attr Sensor1 pollingInterval 60<
2014.12.10 21:20:38 5: Cmd: >attr Sensor1 room Heizungsraum,Eltern<
2014.12.10 21:20:38 5: Cmd: >define FileLog_Sensor1 FileLog /var/log/fhem/Sensor1-%Y.log Sensor1:(temperature).*<
2014.12.10 21:20:38 5: Cmd: >attr FileLog_Sensor1 fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a90000","h":2}]<
2014.12.10 21:20:38 5: Cmd: >attr FileLog_Sensor1 logtype Ofen4:Plot,text<
2014.12.10 21:20:38 5: Cmd: >attr FileLog_Sensor1 room Logs<
2014.12.10 21:20:38 5: Cmd: >define weblink_Sensor1 SVG FileLog_Sensor1:Ofen4:CURRENT<
2014.12.10 21:20:38 5: Cmd: >attr weblink_Sensor1 label "Vorlauf Ofen Min $data{min1}C°, Max $data{max1}C°, Last $data{currval1}C°"<
2014.12.10 21:20:38 5: Cmd: >attr weblink_Sensor1 room Heizungsraum,Eltern<
2014.12.10 21:20:38 5: Cmd: >define Sensor2 GPIO4 28-000004a7270f<
2014.12.10 21:20:38 4: GPIO4: GPIO4_Define(Sensor2)
2014.12.10 21:20:39 5: Cmd: >attr Sensor2 alias Fussboden Heizung<
2014.12.10 21:20:39 5: Cmd: >attr Sensor2 fp_Heizungsschema 490,1100,3,temperature,Vorlauf<
2014.12.10 21:20:39 5: Cmd: >attr Sensor2 model DS18B20<
2014.12.10 21:20:39 5: Cmd: >attr Sensor2 pollingInterval 300<
2014.12.10 21:20:39 5: Cmd: >attr Sensor2 room Heizungsraum<
2014.12.10 21:20:39 5: Cmd: >define FileLog_Sensor2 FileLog /var/log/fhem/Sensor2-%Y.log Sensor2:(temperature).*<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensor2 fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a90000","h":2}]<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensor2 logtype FBH4:Plot,text<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensor2 room Logs<
2014.12.10 21:20:39 5: Cmd: >define weblink_Sensor2 SVG FileLog_Sensor2:FBH4:CURRENT<
2014.12.10 21:20:39 5: Cmd: >attr weblink_Sensor2 label "Vorlauf Fußbodenheizung Min $data{min1}C°, Max $data{max1}C°, Last $data{currval1}C°"<
2014.12.10 21:20:39 5: Cmd: >attr weblink_Sensor2 room Heizungsraum<
2014.12.10 21:20:39 5: Cmd: >define Sensor3 GPIO4 28-000004a66e3a<
2014.12.10 21:20:39 4: GPIO4: GPIO4_Define(Sensor3)
2014.12.10 21:20:39 5: Cmd: >attr Sensor3 alias Wärmepumpe<
2014.12.10 21:20:39 5: Cmd: >attr Sensor3 fp_Heizungsschema 490,370,3,temperature,LWP_Vorlauf<
2014.12.10 21:20:39 5: Cmd: >attr Sensor3 model DS18B20<
2014.12.10 21:20:39 5: Cmd: >attr Sensor3 pollingInterval 60<
2014.12.10 21:20:39 5: Cmd: >attr Sensor3 room Heizungsraum,Vitocal 200-S,Favourites<
2014.12.10 21:20:39 5: Cmd: >define FileLog_Sensor3 FileLog /var/log/fhem/Sensor3-%Y.log Sensor3:(temperature).*<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensor3 fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a90000","h":2}]<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensor3 logtype Vitocal4:Plot,text<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensor3 room Logs<
2014.12.10 21:20:39 5: Cmd: >define weblink_Sensor3 SVG FileLog_Sensor3:Vitocal4:CURRENT<
2014.12.10 21:20:39 5: Cmd: >attr weblink_Sensor3 label "Vorlauf Vitocal-200 nach WT Min $data{min1}C°, Max $data{max1}C°, Last $data{currval1}C°"<
2014.12.10 21:20:39 5: Cmd: >attr weblink_Sensor3 room Heizungsraum,Vitocal 200-S<
2014.12.10 21:20:39 5: Cmd: >define FileLog_Sensoren FileLog /var/log/fhem/Sensoren-%Y.log Sensor1:(temperature)|Sensor2:(temperature)|Sensor3:(temperature)|PufferU:(temperature).*<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensoren logtype Sensoren:Plot,text<
2014.12.10 21:20:39 5: Cmd: >attr FileLog_Sensoren room Logs<
2014.12.10 21:20:39 5: Cmd: >define weblink_Sensoren SVG FileLog_Sensoren:Sensoren:CURRENT<
2014.12.10 21:20:39 5: Cmd: >attr weblink_Sensoren label "Alle Sensoren - überlagert"<
2014.12.10 21:20:39 5: Cmd: >attr weblink_Sensoren room Heizungsraum<
2014.12.10 21:20:39 5: Cmd: >define PufferOben GPIO4 28-000004a72c38<
2014.12.10 21:20:39 4: GPIO4: GPIO4_Define(PufferOben)
2014.12.10 21:20:40 5: Cmd: >attr PufferOben alias 1 Puffer Oben<
2014.12.10 21:20:40 5: Cmd: >attr PufferOben fp_Heizungsschema 350,670,3,temperature,Oben<
2014.12.10 21:20:40 5: Cmd: >attr PufferOben model DS18B20<
2014.12.10 21:20:40 5: Cmd: >attr PufferOben pollingInterval 60<
2014.12.10 21:20:40 5: Cmd: >attr PufferOben room Pufferspeicher,Favourites<
2014.12.10 21:20:40 5: Cmd: >define FileLog_PufferOben FileLog /var/log/fhem/PufferOben-%Y.log PufferOben:(temperature).*<
2014.12.10 21:20:40 5: Cmd: >attr FileLog_PufferOben fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a90000","h":2}]<
2014.12.10 21:20:40 5: Cmd: >attr FileLog_PufferOben logtype PufferU:Plot,text<
2014.12.10 21:20:40 5: Cmd: >attr FileLog_PufferOben room Logs<
2014.12.10 21:20:40 5: Cmd: >define weblink_PufferOben SVG FileLog_PufferOben:PufferOben:CURRENT<
2014.12.10 21:20:40 5: Cmd: >attr weblink_PufferOben label "Pufferspeicher Oben Min $data{min1}C°, Max $data{max1}C°, Last $data{currval1}C°"<
2014.12.10 21:20:40 5: Cmd: >attr weblink_PufferOben room Pufferspeicher<
2014.12.10 21:20:40 5: Cmd: >define PufferU GPIO4 28-000004a753f1<
2014.12.10 21:20:40 4: GPIO4: GPIO4_Define(PufferU)
2014.12.10 21:20:41 5: Cmd: >attr PufferU alias 2 Puffer Mitte<
2014.12.10 21:20:41 5: Cmd: >attr PufferU fp_Heizungsschema 490,670,3,temperature,Mitte<
2014.12.10 21:20:41 5: Cmd: >attr PufferU model DS18B20<
2014.12.10 21:20:41 5: Cmd: >attr PufferU pollingInterval 60<
2014.12.10 21:20:41 5: Cmd: >attr PufferU room Heizungsraum,Eltern,Pufferspeicher,Favourites<
2014.12.10 21:20:41 5: Cmd: >define FileLog_PufferU FileLog /var/log/fhem/PufferU-%Y.log PufferU:(temperature).*<
2014.12.10 21:20:41 5: Cmd: >attr FileLog_PufferU fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a90000","h":2}]<
2014.12.10 21:20:41 5: Cmd: >attr FileLog_PufferU logtype PufferU:Plot,text<
2014.12.10 21:20:41 5: Cmd: >attr FileLog_PufferU room Logs<
2014.12.10 21:20:41 5: Cmd: >define weblink_PufferU SVG FileLog_PufferU:PufferU:CURRENT<
2014.12.10 21:20:41 5: Cmd: >attr weblink_PufferU label "Pufferspeicher Mitte Min $data{min1}C°, Max $data{max1}C°, Last $data{currval1}C°"<
2014.12.10 21:20:41 5: Cmd: >attr weblink_PufferU room Heizungsraum,Pufferspeicher<
2014.12.10 21:20:41 5: Cmd: >define PufferUnten GPIO4 28-000004d8e2e9<
2014.12.10 21:20:41 4: GPIO4: GPIO4_Define(PufferUnten)
2014.12.10 21:20:43 5: Cmd: >attr PufferUnten alias 3 Puffer Unten<
2014.12.10 21:20:43 5: Cmd: >attr PufferUnten fp_Heizungsschema 620,670,3,temperature,Unten<
2014.12.10 21:20:43 5: Cmd: >attr PufferUnten model DS18B20<
2014.12.10 21:20:43 5: Cmd: >attr PufferUnten pollingInterval 60<
2014.12.10 21:20:43 5: Cmd: >attr PufferUnten room Pufferspeicher,Favourites<
2014.12.10 21:20:43 5: Cmd: >define FileLog_PufferUnten FileLog /var/log/fhem/PufferUnten-%Y.log PufferUnten:(temperature).*<
2014.12.10 21:20:43 5: Cmd: >attr FileLog_PufferUnten fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a90000","h":2}]<
2014.12.10 21:20:43 5: Cmd: >attr FileLog_PufferUnten logtype PufferU:Plot,text<
2014.12.10 21:20:43 5: Cmd: >attr FileLog_PufferUnten room Logs<
2014.12.10 21:20:43 5: Cmd: >define weblink_PufferUnten SVG FileLog_PufferUnten:PufferUnten:CURRENT<
2014.12.10 21:20:43 5: Cmd: >attr weblink_PufferUnten label "Pufferspeicher Unten Min $data{min1}C°, Max $data{max1}C°, Last $data{currval1}C°"<
2014.12.10 21:20:43 5: Cmd: >attr weblink_PufferUnten room Pufferspeicher<
2014.12.10 21:20:43 5: Cmd: >define lowtempwarn dummy<
2014.12.10 21:20:43 5: Cmd: >define heatpump dummy<
2014.12.10 21:20:43 5: Cmd: >define Tempalarm_low notify PufferU:temperature.* {
print STDERR "Temperaturänderung Puffer\n";
if (ReadingsVal("PufferU", "temperature", 20) < 48) {
print STDERR "Puffer < 48\n";
if (ReadingsVal("Sensor3", "temperature", 20) < 30) {
print STDERR "Sensor3 < 30\n";
if (Value("lowtempwarn") eq "off") {
print STDERR "Sende Mail\n";
DebianMail('fhem@@.de','Temperatur unterschritten','Die Temperatur im Pufferspeicher von mindestens 48C Grad wurde unterschritten, bitte nachheizen, aktuelle Temperatur '.ReadingsVal("PufferU", "temperature", "0") .' Grad');
fhem('attr WEBtablet stylesheetPrefix ios7smallscreen1');
fhem("set lowtempwarn on");
fhem('attr WEBtablet refresh 30');
}
} else {
if (Value("heatpump") eq "on") {
print STDERR "Sende Mail\n";
DebianMail('fhem@@.de','Temperatur unterschritten & WP an','Die Temperatur im Pufferspeicher von mindestens 48C Grad wurde unterschritten & die Wärmepumpe arbeitet gerade, aktuelle Temperatur '.ReadingsVal("PufferU", "temperature", "0") .' Grad');
fhem('attr WEBtablet stylesheetPrefix ios7smallscreen2');
fhem('attr WEBtablet refresh 30');
fhem('set heatpump off-for-timer 60');
}
}
} else {
if (Value("lowtempwarn") eq "on") {
print STDERR "Sende Mail\n";
DebianMail('fhem@@schweitzer-dirk.de','Temperatur ueberschritten','Die Temperatur im Pufferspeicher von mindestens 48C Grad wurde erreicht, aktuelle Temperatur '.ReadingsVal("PufferU", "temperature", "0") .' Grad');
fhem('attr WEBtablet stylesheetPrefix ios7smallscreen');
fhem("set lowtempwarn off");
fhem("set heatpump on");
}
}
}<
2014.12.10 21:20:43 5: Cmd: >define hightempofen dummy<
2014.12.10 21:20:43 5: Cmd: >define Hightempnotification notify Sensor1:temperature.* {
print STDERR "Temperaturänderung Sensor1\n";
if (ReadingsVal("Sensor1", "temperature", 20) < 57) {
print STDERR "Ofentemperatur < 57\n";
if (Value("hightempofen") eq "off") {
print STDERR "Sende Mail Ofen nachheizen\n";
DebianMail('fhem@@.de','Ofen bitte nachlegen','Die Temperatur im Vorlauf des Ofens wurde unterschritten, bitte nachheizen, aktuelle Temperatur '.ReadingsVal("Sensor1", "temperature", "0") .' Grad');
fhem("set hightempofen on");
}
} else {
if (Value("hightempofen") eq "on") {
print STDERR "Sende Mail Ofen nicht nachheizen\n";
DebianMail('fhem@@','Ofen an und ausreichend Holz','Die Temperatur im Vorlauf des Ofens ist ausreichend, kein Nachheizen notwendig, aktuelle Temperatur '.ReadingsVal("Sensor1", "temperature", "0") .' Grad');
fhem("set hightempofen off");
}
}
}<
2014.12.10 21:20:43 5: Cmd: >define events holiday<
2014.12.10 21:20:43 5: Cmd: >define CheckEventHeute at *18:00:00 {
my $Eventname;
my $EventHeute;
$EventHeute = fhem("get events today");
print $EventHeute;
if ($EventHeute ne "none") {
$Eventname = "Reminder: $EventHeute" ;
DebianMail('ab@.de','NICHT VERGESSEN ! Morgen ist -->' ,$Eventname);
}
}<
2014.12.10 21:20:43 5: Cmd: >define Monitor_Heizung GenShellSwitch /home/pi/rcswitch-pi/send 00000 1 0 1<
2014.12.10 21:20:43 5: Cmd: >attr Monitor_Heizung fp_Heizungsschema 80,950,1,Heizungsanzeige<
2014.12.10 21:20:43 5: Cmd: >attr Monitor_Heizung group Heizung<
2014.12.10 21:20:43 5: Cmd: >attr Monitor_Heizung room Heizungsraum<
2014.12.10 21:20:43 5: Cmd: >define Kugel_Wohnzimmer GenShellSwitch /home/pi/rcswitch-pi/send 00001 1 0 1<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer fp_Wohnung 495,670,5,<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer group Wohnzimmer<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer room Wohnzimmer<
2014.12.10 21:20:43 5: Cmd: >define Kugel_Wohnzimmer2 dummy<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer2 fp_Wohnung 25,520,5,<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer2 room Wohnzimmer<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer2 setList on off<
2014.12.10 21:20:43 5: Cmd: >define off_Kugel_Wohnzimmer2 notify Kugel_Wohnzimmer2:off {system("/home/pi/rcswitch-pi/send 00010 1 1 &")}<
2014.12.10 21:20:43 5: Cmd: >define on_Kugel_Wohnzimmer2 notify Kugel_Wohnzimmer2:on {system("/home/pi/rcswitch-pi/send 00010 1 0 &")}<
2014.12.10 21:20:43 5: Cmd: >define Kugel_Wohnzimmer2_an at *17:00:00 { fhem "set Kugel_Wohnzimmer2 on" }<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer2_an room Wohnzimmer<
2014.12.10 21:20:43 5: Cmd: >define Kugel_Wohnzimmer2_aus at *23:15:00 { fhem "set Kugel_Wohnzimmer2 off" }<
2014.12.10 21:20:43 5: Cmd: >attr Kugel_Wohnzimmer2_aus room Wohnzimmer<
2014.12.10 21:20:43 5: Cmd: >define warm_Car GenShellSwitch /home/pi/rcswitch-pi/send 00011 1 0 1<
2014.12.10 21:20:43 5: Cmd: >attr warm_Car fm_type smarttogglebutton,socket,onbutton,offbutton<
2014.12.10 21:20:43 5: Cmd: >attr warm_Car group Carport<
2014.12.10 21:20:43 5: Cmd: >attr warm_Car room Carport<
2014.12.10 21:20:43 5: Cmd: >define SMAwb SMAWebbox 192.168.2.168 http<
2014.12.10 21:20:43 5: Cmd: >attr SMAwb verbose 5<
2014.12.10 21:20:43 5: Cmd: >define Fhemobile dummy<
2014.12.10 21:20:43 5: Cmd: >attr Fhemobile comment eJyNkl1rgzAUhv9LYHdnkKiNsXdj7Atklo1tF8ULqWkNqJHEFNbS/75T0EbZKLsICu97vp5zjmRntOssWa6PRJVkSUrXNN8ECP6vA8qBLSJgfIHfMD/BYHpavWTRYGIsBhbgCzkkEcQRCIyggXc/qlqmejf44xgChhEUI84vARFDgoUoFmHMhz1LdXDtGMaSyEtfumoPqmmkuajCq5WuVVmMQzBBvXRfmE6bfpyP8UmXaZa9rdK710HkFDgOkQPZS2OVbtEjaIiq0bqZEPtUvd4U9U1AA0pv38eyUwIrt91ikk6qTeV79uAmXRR77Yzqpf0D7yznQ91L044udIgJIMRtPe//w7amcM0kJy4Uwf/a6EdrkaIsLxzPa0fQs2sBUqGVEn81xrWlUdbKOeJrWwW8wavry08/WHPBug==<
2014.12.10 21:20:43 1: Including ./log/fhem.save
2014.12.10 21:20:43 5: Cmd: >setstate CheckEventHeute Next: 18:00:00<
Das ist das Log der Initialisierung, danach kommt keine Webbox mehr vor !
Dirk
Die Fehlermeldung "Unknown module SMAWebbox" ist im Log aber nicht mehr vorhanden. Oder habe ich das übersehen?
....yeahhhhh genau die war nicht mehr da ! Ich weiss nicht warum, aber er hat den Inhalt der Datei gelöscht ! Die Dateien waren leer,
deshalb konnte er mit dem Modul auch nichts anfangen !
Jetzt siehst Du unten auch die Pyra, sprich die Wetterstation :-)
Danke Euch allen für die Hilfe bei der Fehlersuche !
Gruß Dirk
Hallo kohlenmacher, hallo zusammen,
zuerst einmal ein großes Dankeschön an kohlenmacher für die Erstellung der Module!
Ich habe die beiden Module 25_SMAWebbox.pm und 26_SMADevice.pm seit einigen Wochen unter fhem 5.7 auf einem Raspberry Pi 3 mit einer SMA Sunny Webbox (FW: 1.52 / HW: WEBBOX-H1-150005701), 2 SMA Sunny Boy Wechselrichtern und der SMA Sensor Box (Temperaturen, Einstrahlung, Windgeschwindigkeit) über http Port 80 mit ca. 50 Readings fehlerfrei am Laufen.
Allerdings musste ich gegenüber den von kohlenmacher am 4. September 2014 hochgeladenen Modulen im ersten Beitrag dieses Threads noch die folgenden Änderungen vornehmen (geänderte Dateien sind angehängt):
1. Änderung 25_SMAWebbox.pm Zeilen 11 und 12:
In den Strings $rpc_GetOverview und $rpc_GetDevices jeweils hinter dem Doppelpunkt noch ein Leerzeichen einfügen (in Übereinstimmung mit dem SMA User Manual "Remote Procedure Call Description - Interfaces and API Definition Version 1.4), ansonsten keine Kommunikation mit der Webbox möglich:
my $rpc_GetOverview = 'RPC={"version": "1.0","proc": "GetPlantOverview","id": "1","format": "JSON"}';
my $rpc_GetDevices = 'RPC={"version": "1.0","proc": "GetDevices","id": "1","format": "JSON"}';
2. Änderung 25_SMAWebbox.pm Zeile 40 und 26_SMADevice.pm:
Timeout für die RPC-Anfrage an die SMA Webbox von 5 auf 15 erhöht, da mit 5 kein Zugriff möglich:
$rpc= GetFileFromURLQuiet($url,15,$data,0,5);
3. Änderung 26_SMADevice.pm, neu eingefügt in Zeile 103
Für alle SMA Parameternamen werden enthaltene Leerzeichen durch Unterstriche ersetzt, um spätere Fehler bei der Anzeige oder Statistik-Verarbeitung in fhem zu vermeiden (z.B. "WindVel m/s" -> "WindVel_m/s"):
$i->{name} =~ s/\s/_/g;
Vielleicht ist die Info ja auch für andere Anwender hilfreich.
Viele Grüße, FHEM0815