SMA Sunny Home Manager abfragen.

Begonnen von Brun, 07 Oktober 2014, 10:40:34

Vorheriges Thema - Nächstes Thema

Waldmensch

#105
Ich schalte meine Poolpumpe abhängig von der Einspeisung (FeedIn). Ab 2000W Einspeisung schaltet sich die Pumpe ein und bei < 1000W Einspeisung wieder aus. Als 3. Parameter habe ich noch eine Höchstlaufzeit von 4h pro Tag, die ich über den "hourcounter" ermittle. Realisiert ist das ganze mit DOIF. Dort kannst Du auch Hysteresen einstellen. Beispiel die >2000W müssen 5 Minuten anliegen zum einschalten und die <1000W müssen 3 Minuten anliegen zum ausschalten. Sonst geht die Pumpe bei jeder Wolke aus.
ich poste heute Abend mal die Config dazu. Aktuell komme ich nicht ran. Die grobe Richtung sollte aber mit der deutschen commandref zu DOIF und hourcounter klar sein.

blitzcom

Tja, da waren sie wieder, meine drei Probleme. Ich kann sowas lesen, klar, verstehen ist wieder was anderes und umsetzen sowieso. Wäre nett, wenn Du Deine Config postest. Mal schauen, ob ich dahinter steige und dann adaptieren kann.

Waldmensch

#107
Also, meine config:

Das ist die Steckdose für die Pumpe
define Steckdose_Pool FS20 4455 50
attr Steckdose_Pool IODev COC
attr Steckdose_Pool alias Steckdose Pool
attr Steckdose_Pool room FS20


Das ist der Betriebsstundenzähler, der die Poolsteckdose überwacht (die unnötigen Werte werden nicht in dblog geschrieben):
define PoolCounter HourCounter Steckdose_Pool:on Steckdose_Pool:off
attr PoolCounter DbLogExclude tickHour,countsPerDay,countsOverall,pauseTimeIncrement,pauseTimePerDay,pauseTimeOverall,state,pulseTimeIncrement,pulseTimeOverall,pulseTimeEdge,pauseTimeEdge,tickUpdated,tickChanged,tickDay,tickWeek
attr PoolCounter event-min-interval .*:600
attr PoolCounter event-on-change-reading .*
attr PoolCounter group Pool
attr PoolCounter interval 5
attr PoolCounter room Control


Und hier nun die eigentliche Steuerung mit DOIF:
define pool_solar
DOIF ([PoolCounter:pulseTimePerDay] >= 14400 and [Steckdose_Pool:state] eq "on")
(set Steckdose_Pool off)
DOELSEIF ([MySHM:FeedIn] < 1000 and [Steckdose_Pool:state] eq "on")
(set Steckdose_Pool off)
DOELSEIF ([MySHM:FeedIn] > 2000 and [10:00-18:00] and [Steckdose_Pool:state] eq "off" and [PoolCounter:pulseTimePerDay] < 14400)
(set Steckdose_Pool on)
attr pool_solar alias Pool bei PV Überschuss
attr pool_solar group Pool
attr pool_solar room Control
attr pool_solar wait 1:120:300


Das erste DOIF fragt den Betriebsstundenzähler ab, ob schon 4h rum sind. Falls ja und die Steckdose ist noch an -> ausschalten.
Das erste DOELSEIF fragt SHM ab ob die Einspeisung kleiner 1000 ist. Falls ja und die Steckdose ist noch an -> ausschalten.
Das zweite DOELSEIF fragt ab ob die Einspeisung größer 2000 ist, wir im Zeitfenster 10-18 Uhr sind und die Pumpe noch keine 4h gelaufen ist. Falls ja und die Steckdose ist aus -> einschalten.

Das attr pool_solar wait 1:120:300 sorgt dafür, das der Zustand des ersten Kommando 1 Sekunde, des 2. 120 Sekunden und des 3. 300 Sekunden bestehen muß. Also wird die Pumpe frühestens 10:05 eingeschaltet wenn 2000W Einspeisung anliegt, da das Kommando sich das ja erstmal 300Sek (5 Minuten) angeschaut hat.

Bei den DOIF ist die logisch korrekte Reihenfolge wichtig, da der erste Treffer genommen wird

Wie das Grafisch aussieht siehst du in den Anhängen. Das eine ist die Visualisierung der Pumpenschaltung und das andere das Log der Solaranlage am gleichen Tag


blitzcom

Also zunächst mal...Respekt! :o

Code 1: Steckdose.
Passt, die hab ich ähnlich.

Code 2: Hourcounter
Das kannte ich gar nicht, hab es so übernommen und schau mir das morgen während des Betriebes an. Der Hintergrund ist angekommen.

Code 3: DOIF
Bei den ersten drei mal lesen hab ich mich gefragt, was an geraucht haben muss um das zu verstehen. Aber mittlerweile steige ich dahinter. Logik verstehen ok, sie in einer Formel zu begreifen:tricky. Aber langsam gehts.
Ohne solche Beispiele würde ich das nicht verstehen.
Ich sage mal recht herzlichen Dank für die Hilfe und ausgiebigen Antworten, damit kann ein Halbanfänger etwas anfangen!

Danke nochmal

Waldmensch

Naja, so schwer ist es nicht, wenn man sich erstmal reinversetzt hat. Schlimm ist es nur, wenn ma wie ich schon 3x die komplette Config wg. SD-Card crash auf dem Raspi verloren hat. Mittlerweile habe ich mein NAS per NFS gemounted und schreibe jede Nacht das komplette FHEM Verzeichnis als Backup weg.

2 Sachen noch zur config oben:

1. Der Hourcounter muss aktuell sein. Meine: VERSION 1.0.1.2 - 24.12.2014. Ältere Versionen kennen das attribut "Interval" nicht und schreiben die readings nur bei steigender oder fallender Flanke (also wenn sich was tut). Wir brauchen aber die Betriebsstunden immer aktuell. Dafür sorgt Intervall

2. Das DOIF Komando steht bei mir komplett in einer Zeile. Ich habe das nur umgebrochen um es dir mit etwas Struktur zu zeigen. Es kann sein, das das so 1:1 in eine Config kopiert nicht funktioniert. Als dann alles hintereinander ohne Zeilenumbrüche und Tabs.

blitzcom

Der Raspi isz nagelneu aufgesetzt, Fhem auch. Deshalb sollte Hourcounter aktuell sein.
Das DOIF habe ich dann auch gemerkt. Beim in eine Zeile nehmen habe ich dann auch gleich mal eine eckige Kkammer mit eleminiert... War dann witzig bis ich den Fehler gefunden habe.
Aber es scheint bisher zu laufen, mehr kann ich ja erst bei Sonne sagen.

Eigentlich steckt in der Geschichte mit der PV Anlage soviel Potential.

Danke

Waldmensch

#111
Schau lieber nach der Version, ich habe auch neu aufgesetzt und hatte eine ältere, die nicht mit intervall funktionierte.

Zum Potenzial: Na logisch, prinzipiell kannst Du damit die Bluetooth Steckdosen von SMA einsparen. Wenn Du der 70% Regel unterliegst kannst Du in den Abregelspitzen zum Beispiel einen Heizstab für einen Warmwasserspeicher zuschalten. Lieber warmes Wasser als den vorhandenen Überschuss ungenutzt verpuffen lassen.

Waldmensch

#112
Hier nochmal eine ganz aktuelle Ansicht des Sunny Portal, wie nach 2 Minuten <1000W die Pumpe abschaltet. Die Pumpe selbst schlägt mit ca. 500W zu Buche.

bkuerby

Hallo zusammen, ich habe heute das SHM Modul bei mir eingebunden. Ich bekomme direkt die gleiche Fehlermeldung wie Waldmensch (Antwort #102, 20 Juli 2015).


2015.10.14 20:55:43 4: not logged in. try to login...
2015.10.14 20:55:44 5: PVAnlage -> 302
2015.10.14 20:55:45 5: PVAnlage -> 200
2015.10.14 20:56:45 5: PVAnlage -> 200
2015.10.14 20:56:45 4: not logged in. try to login...
2015.10.14 20:56:46 5: PVAnlage -> 302
2015.10.14 20:56:47 5: PVAnlage -> 200
2015.10.14 20:57:47 5: PVAnlage -> 200

Ich habe allerdings kein besonderes Startstript. Auch die Datei mycookie.txt ist im Ordner ./log vorhanden und die Datei enthält einen Eintrag vom Sunny Portal. Fehlende Berechtigungen würde ich also ausschließen.
Hat jemand eine Idee?

bkuerby

Habe doch noch mal den Thread durchgeblättert. Das Problem war der Gast-User.
Ich habe den Read-Only user im ersten Post falsch verstanden. Der Standarduser im Sunnyportal darf ja die Steckdosen schalten.

Zitat
Achtung!
Das Passwort ist dann allerdings im FHEM als Klartext ersichtlich. Ich habe mir dazu einen ReadOnly User im Portal angelegt und würde dies jeden dringenst empfehlen.

@Brun
Vielleicht kannst du den Read only user ja in "Standardbenutzer" ändern.

Michael

Moin

Habe jetzt erst das Modul gesichtet.

Super Arbeit.

Aber bei mir scheint was nicht richtig zu sein.
Version: !!!BETA!!! V0.1.1 / s.h. Anhang
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Regengott

positives Feedback meinerseits an Brun: läuft jetzt alles prima, ich musste aber einiges querlesen und ein bisschen experimentieren. Hab die Gelegenheit genutzt und das FHEM Wiki zum Modul aktualisiert.

@Michael: so sah es bei mir auch aus, als ich noch den "Gast"-Berechtigungen genutzt habe. Mit "Standardbenutzer"-Rechten im Sunnyportal läuft's jetzt bei mir :-)

BerndArnold

Hallo zusammen,
auch von mir ein herzliches Dankeschön für dieses Modul. Das Übernehmen der Werte vom Portal ist wirklich genial.

Bei mir sieht es allerdings auch so aus wie bei @Michael - trotz Standardbenutzer-Rechten (wie von @Regengott erwähnt).
@Michael: ist es bei dir immer noch so wie auf deinem Bild?

Ich möchte gerne die Vorschauwerte (also das zukünftige Wetter, erwarteter Ertrag der PV-Anlage sowie den Glühbirnen-Hinweis, ob man Geräte einschalten soll) in Fhem übernehmen. Ich werde dabei das JSON-Modul nutzen (so wie z. B. im Modul 70_XBMC.pm).
Besteht hier allgemeines Interesse?

Ich habe mir die Readings so vorgestellt:
ThisHour_IsConsumptionRecommended = 1 oder 0 (oder "true"/"false" oder so)
ThisHour_PvMeanPower = 1234 (in Wh)
ThisHour_ConsumptionForecast = 123 (wird in Joule übermittelt, evtl. Umrechnung in Wh)
ThisHour_Time = "2016-02-14 15:00:00"
NextHour01_IsConsumptionRecommended...
...
NextHour02_Time = "2016-02-14 16:00:00"
NextHour03_...

usw. für die nächsten 10 Stunden.

Mit JSON würde ich dann auch gleich die bisherige Abfrage parsen und die ErrorMessages, WarningMessages und InfoMessages als Zähler erfassen, so dass ich darauf innerhalb Fhem reagieren kann. Wie oben geschrieben, wird es bei mir im Moment wie bei Michael dargestellt. Bei JSON sehe ich den Vorteil, dass man nicht split benutzen muss, was evtl. fehleranfällig ist.

Meinungen? Vorschläge?
FHEM auf Raspberry Pi mit Arch Linux
2x HM-LAN, 1x CUL
HomeMatic, FS20, Dreambox, Fritzbox
MQTT zur Kommunikation mit zweiter und dritter FHEM-Instanz

Regengott

@BerndArnold: Also mich würden diese Forecast-Werte schon interessieren - mir schwebt vor, im Sommer ein Klimagerät im Schlafzimmer dann anzuschalten, wenn die PV eigentlich in die 70%-Begrenzung gehen würde :) Derzeit hadere ich aber noch mit der Sinnhaftigkeit dieses Unterfangens...

Bei dem Auslesefehler kann ich leider nicht weiterhelfen, sorry.


Michael

Moin

@BerndArnold
Zitat... ist es bei dir immer noch so wie auf deinem Bild?
Ja, es hat sich nichts geändert.

@Regengott @BerndArnold
Habe alle User Rechte getestet (Gast,Standard, Admin) ohne Erfolg.

Programmieren kann ich leider nicht, aber Testen.  :)

Vielen Dank für eure Antworten!
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP