Autor Thema: Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem  (Gelesen 3751 mal)

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4849
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #30 am: 18 August 2017, 12:12:19 »
Das Modul NT5000.pm (im contrib-Ordner)  kommuniziert seriell mit einem NT5000-Wechselrichter von Sunways.

LG

pah

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1038
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #31 am: 19 August 2017, 20:52:19 »
So.
Werk fast vollendet.
Habe jetzt die wichtigsten Werte u. Commandos per Scom ausgelesen, und in div. pythonscripte eingetragen.

in FHEM habe ich Dummys angelegt die von Python gefüttert werden, bzw. Pythonscripte starten.
Mit DOIF rufe ich die jeweiligen scripte in python auf die mir den richtigen Ladestrom bei div. Überschuss einstellen.
Alle Minuten errechne ich den Überschuss, der dann DOIF triggert.
Ich bin auch am überlegen diese Ladesteuerung in ein eigenes Script zu packen, das alle minuten per cron gestartet wird.
das hat aber den nachteil das alle minuten selber befehl an den xtender geschickt wird, was bei doif nur dann erfolgt wenn sich der wert zur nächsten stufe ändert.
aber vielleicht fällt mir noch etwas besseres ein. habe die letzte woche einen crashkurs in python , mir raucht die birne.

define Batt_Ladung notify Batt_Ladung:on { {system('sudo python2 /usr/local/bin/ladung_on.py&');;} }
 
define ladestrom DOIF ([Ueberschuss] >1300 and [Lader] eq "on") ({system('sudo python2 /usr/local/bin/25Amp.py&')}
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1038
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #32 am: 22 August 2017, 17:06:07 »
Weitere Optimierung, den Ladestrom noch feiner gesteuert.
DOELSEIF ([Ueberschuss] >1400 and [Lader] eq "on" and [Wert_I:A] !=25) ("python2 /usr/local/bin/25Amp.py")
DOELSEIF ([Ueberschuss] >1200 and [Lader] eq "on" and [Wert_I:A] !=22) ("python2 /usr/local/bin/22Amp.py")
DOELSEIF ([Ueberschuss] >1100 and [Lader] eq "on" and [Wert_I:A] !=20) ("python2 /usr/local/bin/20Amp.py")
DOELSEIF ([Ueberschuss] >1000 and [Lader] eq "on" and [Wert_I:A] !=18) ("python2 /usr/local/bin/18Amp.py")
DOELSEIF ([Ueberschuss] >900 and [Lader] eq "on" and [Wert_I:A] !=16) ("python2 /usr/local/bin/16Amp.py")
DOELSEIF ([Ueberschuss] >800 and [Lader] eq "on" and [Wert_I:A] !=14) ("python2 /usr/local/bin/14Amp.py")
DOELSEIF ([Ueberschuss] >700 and [Lader] eq "on" and [Wert_I:A] !=12) ("python2 /usr/local/bin/12Amp.py")
DOELSEIF ([Ueberschuss] >600 and [Lader] eq "on" and [Wert_I:A] !=10) ("python2 /usr/local/bin/10Amp.py")
DOELSEIF ([Ueberschuss] >500 and [Lader] eq "on" and [Wert_I:A] !=8) ("python2 /usr/local/bin/8Amp.py")
DOELSEIF ([Ueberschuss] >400 and [Lader] eq "on" and [Wert_I:A] !=6) ("python2 /usr/local/bin/6Amp.py")
DOELSEIF ([Ueberschuss] >300 and [Lader] eq "on" and [Wert_I:A] !=4) ("python2 /usr/local/bin/4Amp.py")
DOELSEIF (([Ueberschuss] >200 and [Lader] eq "on" and [Wert_I:A] >2.5) or ([Lader] eq "off" and [Wert_I:A] >2)) ("python2 /usr/local/bin/2Amp.py")
DOELSEIF ([Ladestrom:state] eq "25A" and [Ueberschuss] <0) ("python2 /usr/local/bin/22Amp.py")
DOELSEIF ([Ladestrom:state] eq "22A" and [Ueberschuss] <0) ("python2 /usr/local/bin/20Amp.py")
DOELSEIF ([Ladestrom:state] eq "20A" and [Ueberschuss] <0) ("python2 /usr/local/bin/18Amp.py")
DOELSEIF ([Ladestrom:state] eq "18A" and [Ueberschuss] <0) ("python2 /usr/local/bin/16Amp.py")
DOELSEIF ([Ladestrom:state] eq "16A" and [Ueberschuss] <0) ("python2 /usr/local/bin/14Amp.py")
DOELSEIF ([Ladestrom:state] eq "14A" and [Ueberschuss] <0) ("python2 /usr/local/bin/12Amp.py")
DOELSEIF ([Ladestrom:state] eq "12A" and [Ueberschuss] <0) ("python2 /usr/local/bin/10Amp.py")
DOELSEIF ([Ladestrom:state] eq "10A" and [Ueberschuss] <0) ("python2 /usr/local/bin/8Amp.py")
DOELSEIF ([Ladestrom:state] eq "8A" and [Ueberschuss] <0) ("python2 /usr/local/bin/6Amp.py")
DOELSEIF ([Ladestrom:state] eq "6A" and [Ueberschuss] <0) ("python2 /usr/local/bin/4Amp.py")
DOELSEIF ([Ladestrom:state] eq "4A" and [Ueberschuss] <0) ("python2 /usr/local/bin/2Amp.py")

attr cmdState 25A|22A|20A|18A|16A|14A|12A|10A|8A|6A|4A|2A|22A|20A|18A|16A|14A|12A|10A|8A|6A|4A|2A
attr doalways 1
attr wait 0:0:0:0:0:0:0:0:0:0:0:0:5:5:5:5:5:5:5:5:5:5:5
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1038
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #33 am: 28 August 2017, 15:03:57 »
So, sensationell was jetzt geht. Bis zu 30% mehr Batterieladung.
Habe weiterhin an der Stellschraube gedreht.
DOELSEIF (([Ueberschuss] >1400 and [Lader] eq "on" and [Xtender_Batt_A] <25) or ([Ladestrom:state] eq "22A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/25Amp.py")
DOELSEIF (([Ueberschuss] >1200 and [Lader] eq "on" and [Xtender_Batt_A] <22) or ([Ladestrom:state] eq "20A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/22Amp.py")
DOELSEIF (([Ueberschuss] >1100 and [Lader] eq "on" and [Xtender_Batt_A] <20) or ([Ladestrom:state] eq "18A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/20Amp.py")
DOELSEIF (([Ueberschuss] >1000 and [Lader] eq "on" and [Xtender_Batt_A] <18) or ([Ladestrom:state] eq "16A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/18Amp.py")
DOELSEIF (([Ueberschuss] >900 and [Lader] eq "on" and [Xtender_Batt_A] <16) or ([Ladestrom:state] eq "14A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/16Amp.py")
DOELSEIF (([Ueberschuss] >800 and [Lader] eq "on" and [Xtender_Batt_A] <14) or ([Ladestrom:state] eq "12A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/14Amp.py")
DOELSEIF (([Ueberschuss] >700 and [Lader] eq "on" and [Xtender_Batt_A] <12) or ([Ladestrom:state] eq "10A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/12Amp.py")
DOELSEIF (([Ueberschuss] >600 and [Lader] eq "on" and [Xtender_Batt_A] <10) or ([Ladestrom:state] eq "8A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/10Amp.py")
DOELSEIF (([Ueberschuss] >500 and [Lader] eq "on" and [Xtender_Batt_A] <8) or ([Ladestrom:state] eq "6A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/8Amp.py")
DOELSEIF (([Ueberschuss] >400 and [Lader] eq "on" and [Xtender_Batt_A] <6) or ([Ladestrom:state] eq "4A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/6Amp.py")
DOELSEIF (([Ueberschuss] >300 and [Lader] eq "on" and [Xtender_Batt_A] <4) or ([Ladestrom:state] eq "2A" and [Ueberschuss] >150)) ("python2 /usr/local/bin/4Amp.py")
DOELSEIF (([Ueberschuss] >200 and [Lader] eq "on" and [Xtender_Batt_A] <=2) or ([Lader] eq "off" and [Wert_I:A] >2)) ("python2 /usr/local/bin/2Amp.py")
DOELSEIF ([Ladestrom:state] eq "25A" and [Ueberschuss] <1) ("python2 /usr/local/bin/22Amp.py", setreading Wert_I A 22)
DOELSEIF ([Ladestrom:state] eq "22A" and [Ueberschuss] <1) ("python2 /usr/local/bin/20Amp.py", setreading Wert_I A 20)
DOELSEIF ([Ladestrom:state] eq "20A" and [Ueberschuss] <1) ("python2 /usr/local/bin/18Amp.py", setreading Wert_I A 18)
DOELSEIF ([Ladestrom:state] eq "18A" and [Ueberschuss] <1) ("python2 /usr/local/bin/16Amp.py", setreading Wert_I A 16)
DOELSEIF ([Ladestrom:state] eq "16A" and [Ueberschuss] <1) ("python2 /usr/local/bin/14Amp.py", setreading Wert_I A 14)
DOELSEIF ([Ladestrom:state] eq "14A" and [Ueberschuss] <1) ("python2 /usr/local/bin/12Amp.py", setreading Wert_I A 12)
DOELSEIF ([Ladestrom:state] eq "12A" and [Ueberschuss] <1) ("python2 /usr/local/bin/10Amp.py", setreading Wert_I A 10)
DOELSEIF ([Ladestrom:state] eq "10A" and [Ueberschuss] <1) ("python2 /usr/local/bin/8Amp.py", setreading Wert_I A 8)
DOELSEIF ([Ladestrom:state] eq "8A" and [Ueberschuss] <1) ("python2 /usr/local/bin/6Amp.py", setreading Wert_I A 6)
DOELSEIF ([Ladestrom:state] eq "6A" and [Ueberschuss] <1) ("python2 /usr/local/bin/4Amp.py", setreading Wert_I A 4)
DOELSEIF ([Ladestrom:state] eq "4A" and [Ueberschuss] <1 and [Lader] eq "on") ("python2 /usr/local/bin/2Amp.py", setreading Wert_I A 2)

cmdState 25A|22A|20A|18A|16A|14A|12A|10A|8A|6A|4A|2A|22A|20A|18A|16A|14A|12A|10A|8A|6A|4A|2A
do always
wait 0:0:0:0:0:0:0:0:0:0:0:0:5,5:5,5:5,5:5,5:5,5:5,5:5,5:5,5:5,5:5,5:5,5
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline holle75

  • Full Member
  • ***
  • Beiträge: 408
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #34 am: 30 August 2017, 08:21:32 »
Hallo satprofi, Hut ab, erstaunlich was du da hinbekommen hast. Spannend wäre für Menschen die zwar fhem "können", aber mit Python noch nichts am Hut hatten, eine kleine Hilfestellung, wie man das von dir erarbeitete zB auf einem Raspi umsetzt? Weil deine Anwendung ist ja jetzt speziell auf dich zugeschnitten, denke aber, jeder möchte vielleicht gerne seine eigenen Einstellungen abfragen und seine eigenen daraus resultierenden notifys/DOIF´s basteln? Vielleicht ist deswegen die response hier im Thread recht klein?

Oder jemand der Perl kann deine Scripts zB in das Modul von pah umwandelt/einbastelt? .... dass man auch ohne den Umweg Python direkt in fhem arbeiten kann. Hexcodes und  weiterer Ausbau kann man dann ja zusammen machen wenn das Gerüst (das Modul) steht (mehr/alle Hexcodes einpflegen).

lieb Gruß

H.


Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1038
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #35 am: 30 August 2017, 13:49:00 »
Hallo.
Das mit einbindung in FHEM hab ich mir schon angesehen, über das script vom SolarLogUtils.pm.
Ich finde dort aber nicht den Abschnitt mit den Commandos.
Was aber zu bedenken wäre, schafft es evt. ein Modul alle Werte vom Xtender abzufragen? Es ist eine Unsumme an Werten, wo ich denke das FHEM in die Knie gehen wird bei de Abfrage. Man müsste wie, bei SolarLogUtils nur die Werte eintragen die man wirklich möchte. aber dann kann man mein Abfragescript auch hernehmen und anpassen.
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline holle75

  • Full Member
  • ***
  • Beiträge: 408
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #36 am: 30 August 2017, 14:05:57 »
man könnte ja über attribute des Moduls die für sich spannenden Werte definieren? Das externe script macht das Ganze für fhemler die sich eher mit Linux rumschlagen als dass sie sich das ausgesucht hätten recht komplex ;) .... und irgendwie um die Ecke wenn ich doch direkt in fhem arbeiten könnte ......  Also versteh mich nicht falsch, ich wurschtel gerne in .pm´s rum, aber da weiß ich, wie ich es rückgängig machen kann. Linux/RPI bin ich einfach happy, dass alles läuft und mehr will ich damit nicht zu tun haben, solange ich nicht muß. Brauch nicht noch eine Baustelle.

Ich hatte mir das Modul von pah ganz am Anfang auch mal angeschaut, aber das ist wenn man sich nicht auskennt zu komplex (und zu weitreichend bezüglich der Auswirkungen auf den Xtender). Hatte aber das "Gefühl", dass das schon die richtige Richtung ist (Kommunikation über RS232 und alles dabei was es als Modul in fhem integrierbar macht).

Hey, ich schreibsel hier weit über meiner Verständniskategorie ;)

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1038
Antw:Studer Xtender XTM mit Xcom-232i Kommunikationsmodul / RS232 in fhem
« Antwort #37 am: 05 September 2017, 20:55:10 »
Hier einmal ein Beispiel, wie es läuft.
Man sieht schön wann der Lader rauf od. runterregelt.
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

 

decade-submarginal