Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anzeige und Setzen der Notstrom Werte #58

Closed
fro5fr opened this issue May 16, 2021 · 24 comments
Closed

Anzeige und Setzen der Notstrom Werte #58

fro5fr opened this issue May 16, 2021 · 24 comments

Comments

@fro5fr
Copy link

fro5fr commented May 16, 2021

Hallo,
nach langem überlegen und durch dieses Projekt habe ich mir nun doch einen Rasberry zugelegt und das WE damit verbracht dein Projekt zu installieren,
Trotz einiger Fallstricke als Rasberry Neuling funktioniert das Display nun tadellos und auch die Übertragung zur Homematic.

Neben der Anzeige an zentraler Stelle hätte ich für meinen Bedarf drei Anregungen.

  • kann man die Textgröße der aktuellen Werte in der E3DC Anzeige (Watt Werte) doppelt so groß machen
  • In dieser Ansicht auch den aktuellen Wert der Notstrom Reserve anzeigen
  • Per Button den Wert der Notstrom reserve zwischen 2/3 Werten im E3DC setzen.
    Hintergrund ist hier z.B. Sommer/Winter betrieb oder auch bei nahendem Unwetter die Reserve hoch zu fahren.

Danke und auch bisher ein Tolles Projekt von deiner Seite
Viele Grüße,
Eric

@nischram
Copy link
Owner

Hallo Eric,

freut mich, dass du das Display so schnell installieren konntest und es auch läuft.

Zu dein Fragen:
Schriftgröße? Es gibt eine Einstellung die Größe einzustellen, aber den Parameter hast du bestimmt gefunden und willst noch mehr Größe! Ja, ich weiß das könnte zum Teil noch größer sein. Leider habe ich mich zu Anfang der Entwicklung für einen c-code und für eine Framebuffer Software entschieden die recht einfach umgesetzt ist. Jetzt kommt aber damit das Problem, mal eben die Schriftgröße ändern geht nicht ich muss jedes Feld neu definieren und somit auch die abstände zwischen den Symbolen etc. ach ja und unterschiedliche Größen auf verschiedenen Seiten haben ich bislang auch noch nicht hinbekomme.
Aber ich nehme deinen Wunsch auf (du bist auch nicht der Erste der danach fragt). Vielleicht habe ich ja mal Lust dem Display eine neue Optik zu verpassen und so auch die Schrift anzufassen. Ich werde es hier melden.

Notstromreserve? Leider ist die Liste der E3DC-RSCP-Tag von ca 2016 und zu der Zeit gab es die Notstromreserve noch nicht, so kenne ich die Befehle nicht um die Reserve abzufragen oder neu einzustellen. Wenn ich die Tags und den Container kennen würde, sollte eine Einstellung und Abfrage möglich sein. So müsste ich erst eine Anfrage bei E3DC stellen und kann dann erst testen, wobei ich die Reserve i.d.R. nicht nutze (aber der Sinn steht außer Frage, denn vor dem Schnee Anfang des Jahres hatte ich die direkt am System auch gestartet, aber zum Glück nicht gebraucht). Wenn ich eine Infos zu den RSCP-TAGs bekomme werde ich mir was einfallen lassen.

Bis dahin viel Spaß mit dem Display!

Viele Grüße Nico

nischram added a commit that referenced this issue May 23, 2021
Für Issue #58 Schriftgöße angepasset
@nischram
Copy link
Owner

Hallo Eric,

Ich konnte das schlechte Wetter der letzten Tage nutzen um die Schift anzupassen.

Ich habe jetzt nicht die Schrift geändert, also ich bin nicht an den Framebuffer gegangen, sondern ich habe für jede Zahl eine Grafik erstellt und stelle jetzt die Grafiken dar.

Es muss die GuiMain.c und einige weitere Dateien Aktualisiert werden. Diverse Bilder aus dem Ordner Image müssen installiert werden, die parameter.h habe ich nicht geändert. So ist könnte beim Aktualisieren der Issue #52 helfen.
Hier ein Bild der neuen Grafik:
IMG_4410
Ich denke das sollte jetzt groß genug sein 😉!

An dem Teil mit der Notstromreserve bin ich noch dran.

Viele Grüße Nico

@nischram
Copy link
Owner

Ich musste gerade nochmal einen kleinen Fehler in der GuiMain.c korrigieren. Ich hatte eine Zeile beim übertragen vom Raspberry zum Github vergessen.

@fro5fr
Copy link
Author

fro5fr commented May 23, 2021

Hallo Nico,
super - ich probiere es morgen gleich aus - vorher bin ich leider unterwegs.
Der Schreenshot sieht schon mal gut aus.
ich habe bisher vergeblich nach den Notstrom Tags gesucht - aber vielleicht finde ich sie noch oder frage bei E3DC nach.
viele Grüße
Eric

@nischram
Copy link
Owner

Hallo Eric,
für die Notstrom-TAGs habe ich schon eine Anfrage gestellt.
VG Nico

@fro5fr
Copy link
Author

fro5fr commented May 25, 2021

Hallo Nico,
super, danke - das update hat geklappt und ist sehr gut lesbar :-)
Danke

Kleine Zusatzanfrage - oder soll ich ein neues Issue aufmachen :-)
Auf der Einstellungs-seite kann man ja sehr schön neu starten oder den PI Ausschalten.
Gut fände ich hier noch ein SW beenden Button - dann kann man hier direkt in die Comandozeile :-)
Danke und Gruß,
Eric

@nischram
Copy link
Owner

Hallo Eric,
sehr gut!
Grundsätzlich ist ein neuer Issue schöner, dann können andere die ggf. auch Fehler haben, den Zusammenhang erkennen.
Da es ein Vorschlag war, ist es nicht ganz so wichtig. Ich finde ihn gut und das sollte schnell gemacht sein. Bitte denk dran, komplett geht der Pi dann aber nicht aus. Damit der Verbrauch 0 ist muss der Stecker gezogen werden.
Du kann es ja vielleicht testen ob es dir reicht. Der Befehl ist:

sudo hutdown -h now

Mit dem Notstrom könnte es jetzt auch weiter gehen, eine Antwort habe ich bekommen, aber das muss ich erst noch verstehen um es dann zu testen.

Viele Grüße Nico

@fro5fr
Copy link
Author

fro5fr commented May 25, 2021

Hallo Nico,
ich mache ein neues Issue auf.
es ging nicht um das runterfahren - das gibts doch schon mit "Ausschalten".
Es ging quasi um ./stop

Viele Grüße,
Eric

nischram added a commit that referenced this issue May 28, 2021
- Für Issue #58 kann nun die Reserve aktiviert oder eingestellt werden
- Für Issue #59 Stop-Button im Setup-Menü
- Für Issue #55 zur Wallbox kann jetzt die Anzahl der Phasen vorgewählt werden
Für Issue #56 kann jetzt eine Ladung gestoppt werden
@nischram
Copy link
Owner

Hallo Eric,
so... Update ist fertig! Jetzt kannst du im Menü Bildschirmfoto 2016-08-02 um 22 58 42 die Notstrom-Reserve setzen oder anpassen.

So sieht das Ergebnis aus:
IMG_4415

Für das Update habe ich die "parameter.h" nicht geändert. So kann Issue#52 eventuell helfen.

Ein Feedback ob alles klappt, wäre toll (auch wenn ich diesen Issue jetzt schleiße).

Viele Grüße Nico

@nischram
Copy link
Owner

Hey,

ich musste noch ein Update nachschieben, es kam im Homematic-Forum noch ein Tipp, jetzt gibt es doch eine kleine Änderung an der parameter.h bei ca. Zeile 59 sind zwei Zeilen neu.

VG Nico

@fro5fr
Copy link
Author

fro5fr commented May 29, 2021

Hi Nico,
vielen Dank - funktioniert einwandfrei und ist genau das was ich gewünscht habe :-)
Danke,
VG Eric

@bs0001
Copy link

bs0001 commented Aug 18, 2021

Hallo Nico,
ich würde auch gerne ohne Display (sondern über die Homematic direkt) die Notstromreserve anpassen.

So wie ich das sehe, geht das aktuell nur mit dem Display, oder?

Ich habe mal zusammengeschrieben, welche Steps ich sehe, um das zu realisieren:

Notstromreserve setzen ohne Display

  1. Systemvariablen in Homematic anlegen
    S10_SEND_NOW als Logikwert, analog S10_WALLBOX_SEND_NOW
    S10_SEND_NOW_ACTION als Zeichenkette, dann kann man zukünftig beliebige Actions eintragen und in Deinen Programmen drauf reagieren

  2. parameter.h ergänzen

  • Tags definieren:
    #define ISE_HM_SEND_NOW 0 // ISE_ID Anforderung fürs senden
    #define ISE_HM_SEND_NOW_ACTION 0 // ISE_ID Anforderung fürs definierte Aktion
    #define TAG_EMS_ISE_EMERGENCY_POWER_SIZE 0 // ISE_ID Size of emergency power in Wh
    #define ISE_HM_SEND_EMERGENCY_POWER_SIZE 0 // ISE_ID Size of emergency power in Wh
  1. actionCheckHM.c erstellen
    Erstellung "actionCheckHM.c" durch Kopie der Datei "wbCheckHM.c"
  • Inhaltliche Anpassung der Datei durch Abfrage der beiden o.s. ISE-IDs (ISE_HM_SEND_NOW & ISE_HM_SEND_NOW_ACTION).
  • Codingauszüge dann in etwa so:
    read_HM(ISE_HM_SEND_EMERGENCY_POWER_SIZE, 2, HmEpSize);
    snprintf (OUT, (size_t)128, "/home/pi/E3dcGui/Rscp/RscpSet -ep", HmEpSize);
  1. make Rscp/actionCheckHM

  2. Homematic-Programme entsprechend erstellen, in dem bei Änderung der Emergency-Size und Drücken eines Speichern-Buttons, die beiden Variablen für ISE_HM_SEND_NOW_ACTION und ISE_HM_SEND_NOW gefüllt werden.

Schau bitte mal drüber, ob ich hier was vergessen habe oder ob es eine einfachere Möglichkeit gibt.

Wie in Issue 53 geschrieben würde ich auch gerne die maximale Ladeleistung (bei gutem Wetter darf es gerne weniger sein, schont den Akku) sowie Sperrzeiten übermitteln können.
Vielleicht hast Du ja bereits was davon in Planung. Ansonsten müssten entsprechende Programme erweitert werden. Muss ich mir aber erst noch genauer ansehen.

Was bislang noch nicht ging war der Tagesertrag für MPP1 und MPP2 zu ermitteln. Lt. E3DC wurden diese Parameter noch nicht auslesbar zur Verfügung gestellt. Vielleicht ja mittlerweile mit dem aktuellen Software-Stand (P10_2021_044).

Besten Dank und viele Grüße
Bernd

@nischram
Copy link
Owner

Hallo Bernd,

ich gönne mir aktuell Urlaub, auch von der Unterstützung hier, so wird meine Antwort noch einige Tage dauern.

Sorry aber muss mal sein...

Viele Grüße Nico

@bs0001
Copy link

bs0001 commented Aug 18, 2021 via email

@bs0001
Copy link

bs0001 commented Aug 24, 2021

Hallo Nico,

ich habe die letzten Tage nun etwas an Deinem Projekt weitergearbeitet, um auch ohne Display die Notstromreserve einstellen zu können.

Dementsprechend habe ich folgendes gemacht:

  1. Erweiterung parameter.h

Habe dazu die letzte Zeile vor meiner Einfügung mit reinkopiert, damit Du die Stelle findest. Start ist bei mir bei Zeile 63.
#define ISE_WB_SEND_PH_CHANGE 65032 // ISE_ID Anzahl der Phasen tauschen
// BS - Begin
//HM Werte lesen und senden
#define TAG_EMS_ISE_EMERGENCY_POWER_SIZE 58574 // ISE_ID Size of emergency power in Wh - HM-Variable BS: S10_HKW_INFO_BAT_NOTSTROMRESERVE
#define HM_SEND 1 // Mit dieser Funktion (aktiv = 1 / deaktiv = 0) wird eine Variable der HM überwacht, wenn diese "true" ist werden weitere Variablen ausgelesen und die Werte zur Homematic gesendet
#define HM_INTERVAL 15 // Abfrageintervall in Sekunden, Empfehlung = 15 (nicht kleiner, nur größer)
#define ISE_HM_SEND_NOW 65140 // ISE_ID Anforderung fürs senden
#define ISE_HM_SEND_NOW_ACTION 65141 // ISE_ID, in der die Aktion beschrieben ist, die auszuführen ist
#define ISE_HM_SEND_EMERGENCY_POWER_SIZE 65142 // ISE_ID Size of emergency power in Wh - HM-Variable BS: S10_HKW_SEND_BAT_NOTSTROMRESERVE
// BS - End

  1. Anpassung funktion.h

In Zeile 717 habe ich folgende Zeile eingefügt:
if(pidCheck("actionCheckHM") != 0) system("killall -9 actionCheckHM"); // BS - Add

  1. Anpassung start.c

In Zeile 49 folgende Zeilen eingefügt:
if(HM_SEND == 1){ // BS - Add
system("/home/pi/E3dcGui/Rscp/actionCheckHM &"); // BS - Add
} // BS - Add

  1. Anpassung RscpMain.cpp

Ich habe da bereits einiges selbst eingefügt. Von daher ist das mit den Zeilenangaben schlecht. Bei mir ist es nach Zeile 900 in der case TAG_SE_EP_RESERVE.
Anbei der Abschnitt. Die einze Zeile mit // BS - Add habe ich hinzugefügt, damit mir die eingestellte Notstromreserve (ich hinterlege diese in kW) in die Homematic geschrieben wird.
case TAG_SE_PARAM_EP_RESERVE_W: { // response for TAG_SE_PARAM_EP_RESERVE_W
float OUT_SE_PARAM_EP_RESERVE_W = protocol->getValueAsFloat32(&SEData[i]);
cout << setprecision(0) << fixed << "EP Reserve = " << OUT_SE_PARAM_EP_RESERVE_W << " Wh\n";
writeRscp(PosEpReservW, OUT_SE_PARAM_EP_RESERVE_W);
printsendHM(CounterHM, TAG_EMS_ISE_EMERGENCY_POWER_SIZE, (OUT_SE_PARAM_EP_RESERVE_W / 1000)); // BS - Add
break;
}

  1. Datei actionCheckHM.c angelegt analog der Vorlage wbCheckHM.c

Datei hänge ich direkt an. Habe sie in .txt umbenannt, damit ich sie hier hochladen konnte.
actionCheckHM.txt

In dieser Datei wird der in der Homematic hinterlegte Notstromwert (bei mir in kW) dann in den S10 geschrieben. Funktionsweise analog der Wallbox.

  1. Kompilieren

In der Beschreibung sollte analog "make Rscp/wbCheckHM" auch "make Rscp/actionCheckHM" aufgeführt werden.

Falls ich die Erweiterung so korrekt vorgenommen habe (von der Logik Deines Projektes), dann wäre es schön, wenn Du Sie in Dein Projekt überführen würdest.

Was ich unbedingt noch benötige ist das Setzen der maximalen Ladeleistung.
Hintergrund ist, dass meine PV-Anlage recht groß ist (24,34kWp Ost-/West-Ausrichtung, S10 E Pro mit 19,5 kWh Batteriekapazität). Der Wechselrichter kann zwar 20.000W verarbeiten aber die Ausgangsleistung ist auf max. 12.000W begrenzt.
Heißt konkret, dass wenn meine Batterien voll sind, dass max. 12.000W an PV-Leistung verarbeitet werden können. Man sieht das sehr gut, dan den Werten die weggeschrieben werden. Bekommt die Ostseite vollen Sonnenschein ab, so regelt es direkt die PV-Leistung der Westseite herunter.
Daher würde ich gerne, wenn der Wetterforecast sagt, es ist heute gutes Wetter (habe diese Daten in der Homematic drinnen) hingehen und jahreszeitabhängig im Zeitraum von ca. 10-16h die Ladeleistung steuern.
Also morgens nur den Minimumwert (100W) zulassen und dann im benannten Zeitraum sukzessive die Ladeleistung erhöhen (PV-Leistung gesamt, Ost, West habe ich ja).
Das wäre zumindest ein Versuch, um einen zusätzlichen Wechselrichter zu vermeiden.

Liebend gerne würde ich das mit Deinem Projekt hier realisieren.

Ich habe folgenden Tag gefunden: TAG_EMS_REQ_BAT_CHARGE_LIMIT / TAG_EMS_BAT_CHARGE_LIMIT

Das Auslesen würde ich schon mal machen. Sollte ja relativ einfach gehen, in dem eine passende ISE aus der Homematic in der parameter.h bekannt gemacht wird und in der RscpMain.cpp an entsprechenden Stellen das Auslesen erfolgt und in die Homematic geschrieben wird.
Wie aber kann ich einen Ladeleistungswert, den ich in der Homematic festlege in den S10 dann schreiben.
Es würde mir vorschweben, es ähnlich dem o.g. Szenario zu machen. Also eine hmSendNowAction definieren (z.B. S10_HKW_C_BAT_CLIMIT") und in die actionCheckHM.c entsprechend erweitern.
So ganz ist mir das aber nicht klar, wie und wo dann Anpassungen vorzunehmen sind, damit der Wert verarbeitet werden kann. Aufruf könnte so ähnlich sein:
snprintf (OUT, (size_t)128, "/home/pi/E3dcGui/Rscp/RscpSet -bcl %i", S10CurrentBatChargeLimit);

Wäre prima, wenn Dein Projekt (gerne auch durch einige individuelle Aktivitäten) dann dazu genutzt werden kann, um definierte Daten aus der Homematic in den S10 zu schreiben.

Ich freue mich auf Dein Feedback.

Beste Grüße
Bernd

@bs0001
Copy link

bs0001 commented Aug 26, 2021

Hallo Nico,

bzgl. der Anpassung der maximalen Ladeleistung habe ich am Projekt weitergearbeitet und zumindest eine Interimslösung gefunden. Mein letzter Kommentar hat was die Notstromreserve angeht nach wie vor Bestand. Daran habe ich nichts mehr verändert.

Von der Realisierung her gefällt mir die aktuelle Lösung mit der Ladeleistung nicht so, da m.E. die Anpassungen nicht an der richtigen Stelle sind.

Orientiert habe ich mich an diesem Projekt:
E3DC-Control

Was habe ich gemacht:

1. Anpassungen RscpMain.cpp
Habe die Datei hier als txt-Datei angehängt.
RscpMain_20210826_1415.txt
Meine Anpassungen findest Du, wenn Du danach suchst "BS -".
Zeile 174-201
Hier habe ich herausgefunden, wenn ich einen Wert in uPower reinschreibe, dass dieser dann die Einstellung im S10 vornimmt. Demnach habe ich analog der Datei "actionCheckHM.c" die Abfragen hier reingebaut, um zu ermitteln, ob über die Homematic ein neuer Wert eingetragen wurde und dieser gespeichert werden soll.
Wesentlich besser wäre, wenn dieser Teil in die "actionCheckHM.c" ausgelagert wird und durch den entsprechenden Aufruf dann im S10 der Wert gesetzt wird.
Zeile 174-215 habe ich aus dem E3DC-Control-Projekt weitestgehend übernommen.

Zeile 802-878
Hier sind die Aufrufe hinterlegt. Allerdings erhalte ich beim Ausführen des Projekts aus Zeile 808-813 folgende Infos, welche zeigen, dass der Aufruf nicht funktioniert:
TAG_EMS_GET_POWER_SETTINGS/TAG_EMS_SET_POWER_SETTINGS Durchlauf # 1
TAG_EMS_GET_POWER_SETTINGS 0x01000100 received error code 3.
TAG_EMS_GET_POWER_SETTINGS - Fehler beim Durchlauf!

Ich finde hier den Fehler nicht. Aktuell schaffe ich es nicht, die max. Ladeleistung aus dem S10 auszulesen und in die Homematic zu schreiben. Ich behelfe mir aktuell beim setzen des Wertes in den S10, dass ich den gesetzten Wert auch gleich in die Homematic schreibe. Ist aber etwas suboptimal, da nicht immer der Wert in die Homematic geschrieben wird.

2. Anpassung RWData.h
Um die Daten aus der RscpMain.cpp in die Homematic zu schreiben, und beim Einbinden der "funktion.h" lauter Fehlermeldungen beim Complieren erhalten habe, bin ich hingegangen, und habe in der RWData.h analog der Implementierung in der funktion.h die Funktion "readHM" implementiert. Damit lassen sich dann aus der RscpMain.cpp auch Daten aus der Homematic auslesen. Das Ganze geht sicherlich auch einfacher oder wird gar nicht mehr benötigt, wenn die Verlagerung in die "actionCheckHM.c" erfolgt ist.
RWData_20210826_1414.txt

3. Homematic-Implementierung
In der Homematic habe ich mir nun entsprechende Programme und Variablen angelegt. Ferner werde ich mich bei Gelegenheit noch drum kümmern um die Ladelogik zu erstellen. Diese wird sehr individuell sein. Die Basisarbeit mit dem Setzen des Wertes aus der Homematic heraus wäre zumindest erledigt.

4. Ausblick
Auch die Entladung des Speichers bis zu einer bestimmten Grenze wäre ein Punkt der noch interessant sein könnte. Demnach kann man sich für die Phasen, wenn mehr als genug Sonne runterkommt etwas Puffer in der Batterie schaffen.

Ich hoffe, ich konnte hier etwas Vorarbeit leisten und wäre begeistert, wenn Du meine Vorarbeit nutzen könntest, um diese Funktionen in Dein Projekt zu überführen. Das wäre echt toll!!

Viele Grüße
Bernd

@nischram
Copy link
Owner

nischram commented Sep 6, 2021

Hallo Bernd,

da hast du aber schon so einiges vorgearbeitet. Klar werde ich versuchen einiges (alles) von deinen wünschen in mein Projekt zu übernehmen. Grundsätzlich erfordern Probleme mit meiner Haustechnik und ein weiteres Hobby von mir nach dem Urlaub meine Zeit, so werde ich nicht mit Hochdruck deine Wünsche übernehmen können.

Der Gedanke eine "actionCheckHM.c" anzulegen ist sehr gut, aber ich würde ungerne noch mehr Programme gleichzeitig laufen lassen. Aber die Funktion wbCheckHM.c einfach umzubauen und umbenennen um für beides gleichzeitig zu nutzen halte ich für Sinnvoll. Die Wallbox-Funktionen sind ja irgendwie auch eine "Aktion".

Dein Wunsch für das setzen der EP-Reserve aus der HM wird auf meine ToDo Liste als erstes erledigt. (dieser Issue)
Dann folgen die kleinen Änderungen in der RscpMain für Produktionsdatum etc.

Für die Lade- und Endladeleistung müssen wir natürlich zuerst die Funktion hinbekommen bevor wir es einbauen können. Ich denke aktuell klappt es noch nicht weil die Werte nicht korrekt gesetzt werden. Was ich aus der "RSCP-Tags-Official.xls" gelesen habe muss der Wert mit "TAG_EMS_MAX_CHARGE_POWER" gesetzt werden, aber das setzen reicht nicht es muss aktiviert werden, so wie ich es sehe geht es mit "TAG_EMS_POWER_LIMITS_USED" aber wie es aktiviert wird verstehe ich noch nicht, vielleicht mit 0/1 oder so.
Vielleicht öffnest du für den Wunsch "Lade- Entladeleistung setzen" einen neuen Issue damit es hier nicht zu verwirrend wird.
Diesen Issue öffne ich erstmal wieder bis ich die EP-Funktion zum lesen aus der HM eingebaut habe.

Jetzt muss ich mal sehen wie ich die Umsetzung dazwischen bekomme.

VG Nico

@nischram
Copy link
Owner

Hallo Bernd,

nun habe ich mich mal an die erste Sache gemacht.
Ich habe die wbCheckHM.c umgebaut in actionCheckHM um beide Punkte aus der HM zu senden um das S10 zu Steuern.
Da ich den Inhalt aus der wbCheckHM.c zuvor doppelt auch in der GuiMain.c hatte, jetzt aber nicht zwei dinge Gleichzeitig pflegen möchte habe ich nun das Program zerlegt in actionCheckHM.c und actionCheckHM.h. So kann ich jetzt die Funktionen aus der actionCheckHM.h sowohl in der actionCheckHM.c als auch in der GuiMain.c aufrufen.

Du hattest einen ich nenne es mal Schalter angemacht mit S10_HKW..._ das habe ich nicht übernommen, dafür habe ich einfach für die WB oder EP eine "SendNow" ISE angelegt.

Bei dem EP Sollwert habe ich in der HM eine Variable mit Zeichenkette erstellt. In dieser muss der kWh Wert immer in 4 Stellen inkl. dem Punkt (Punkt für Komma) eingetragen werden. Beispiel: 4,2kWh >> 4.20 oder 12,3kWh >> 12.3
Hier die Variablen die ich angelegt habe:
Bildschirmfoto 2021-09-28 um 21 58 43

Ich habe für diese Änderungen und ein zwei andere mini Punkte (haben sich beim Programmieren gezeigt) folgende Dateien geändert:
Bildschirmfoto 2021-09-28 um 22 03 52

Da ich noch nicht ausreichend getestet habe hier alles als ZIP vielleicht kannst du dir es ansehen und testen. Die Anleitung ist noch nicht angepasst, das muss ich noch machen. Aber eventuell mache ich vorher deine anderen Vorschläge noch in das Programm.
E3dcGui.zip

Hoffentlich klappt es und du findest raus wie ich es gemacht und gemeint habe.

Gruß Nico

@bs0001
Copy link

bs0001 commented Sep 29, 2021

Hallo Nico,

prima, vielen Dank für den aktuellen Stand!

Vorweg, ich habe es noch nicht ausprobiert, habe mir folgende Anpassungen angesehen und auch mein Verständnis wiedergegeben, um zu verhindern, dass ich möglicherweise was falsch verstanden habe:

parameter.h.temp
Die eigentliche parameter.h-Datei, nur dass man sich die eigene im Falle eines Updates nicht überschreibt.
Habe meine Datei "parameter_20210920_0852.txt" mit Deiner verglichen. Geht sehr gut mit WinMerge - kennst Du wahrscheinlich.
Hier fällt auf, dass folgende ISE noch nicht in Deine parameter.h.temp reingewandert sind:
#define TAG_EMS_ISE_POWER_WB_NET 65034 // ISE_ID_POWER_WB_NET
#define TAG_EMS_ISE_WB_BTC 2065 // ISE_ID Batterie vor Auto (Priorität)
#define TAG_EMS_ISE_WB_BBC 2064 // ISE_ID Batterie nach Auto (Batteriestrom erlauben)
Diese werden ja benötigt, um aus der Homematic heraus die entsprechenden Einstellungen im S10 für die Wallbox vorzunehmen.
Der folgende Abschnitt kommt evtl. ja auch noch dazu, falls sich Nutzer die eingestellten Werte in die Homematic schreiben möchten.
Falls nicht, können sie ja die TAGs mit 0 kennzeichnen.
//HM Werte lesen und senden
#define TAG_EMS_ISE_EMERGENCY_POWER_SIZE 58574 // ISE_ID Size of emergency power in Wh - HM-Variable BS: S10_HKW_INFO_BAT_NOTSTROMRESERVE
#define HM_SEND 1 // Mit dieser Funktion (aktiv = 1 / deaktiv = 0) wird eine Variable der HM überwacht, wenn diese "true" ist werden weitere Variablen ausgelesen und die Werte zur Homematic gesendet
#define ISE_HM_SEND_EMERGENCY_POWER_SIZE 65142 // ISE_ID Size of emergency power in Wh - HM-Variable BS: S10_HKW_SEND_BAT_NOTSTROMRESERVE
#define ISE_HM_SEND_BAT_CHARGE_MODUS 1474 // ISE_ID SmartPower - Setzen (Ent-)ladeautmatik an oder manuell (TAG_EMS_SET_POWER_SETTINGS - TAG_EMS_POWER_LIMITS_USED)
#define ISE_HM_SEND_BAT_CHARGE_LIMIT 65156 // ISE_ID SmartPower - Max. Ladeleistung in Wh - HM-Variable BS: S10_HKW_SEND_BAT_CHARGE_LIMIT
#define ISE_HM_SEND_BAT_DISCHARGE_LIMIT 2058 // ISE_ID SmartPower - Max. Entladeleistung in Wh - HM-Variable BS: S10_HKW_SEND_BAT_DISCHARGE_LIMIT
#define ISE_HM_SEND_BAT_DISCHARGE_START_POWER 1476 // ISE_ID SmartPower - Setzes des Wertes für die untere Lade-/Entladeleistung - HM-Variable BS: S10_HKW_SEND_BAT_DISCHARGE_POWER_START (EMS_DISCHARGE_START_POWER)
#define ISE_HM_SEND_HKW_POWERSAVE_MODUS 1478 // ISE_ID SmartPower - Setzen PowerSave Modus an oder aus
#define ISE_HM_SEND_WEATHER_REGULATED_CHARGE 1504 // ISE_ID - Setzen der Wetterprognose für die Batterieladung an oder aus
Die ganzen TAGs ab Zeile 101 in meiner Datei kannst Du ggf. ja auch übernehmen und alle auf 0 setzen.

wbCheckHM.c
Hier wurde nichts verändert. Denke ich passt auch so. Die WB-Funktionen konnte ich alle erfolgreich ausführen und über die Homematic ansteuern.

actionCheckHM.h
Diese Datei beinhaltet aktuell die beiden Funktionen, welche bei Aktivierung in der parameter.h ausgeführt werden, wenn entweder Anpassungen an der Wallbox (ISE_WB_SEND_NOW = True) oder an der Notstromeinstellung (ISE_EP_RESERVE_SEND_NOW = True) vorgenommen werden soll.
Nicht zuletzt wird ein RscpSet-Befehl abgesetzt mit den jeweiligen Parametern die Einstellungen am S10 vornehmen soll. Hierfür wird die kompilierte RscpSet-Datei aufgerufen.
Ggf. wäre es aber auch eine Idee, nur eine ISE_SEMD_NOW zu haben und in einer zweiten ISE dann die Action reinschreiben, die ausgeführt werden soll.
So hatte ich es in der "RscpMain_20210920_0852.txt"
...
readHM(CounterHM, ISE_HM_SEND_NOW_ACTION, 30, hmSendNowAction);
...
if (strcmp ("S10_HKW_C_MAX_C_POWER",hmSendNowAction) == 0){
...
Dann gäbe es generell nur 2 Variablen und es würde auch die wbCheckHM.c überflüssig machen.
SEND_NOW sagt aus der Homematic dem S10, führe jetzt was aus.
In der SEND_NOW_ACTION steht mittels Zeichenketten geschrieben, was erfolgen soll.
Generell könnte man damit auch außer acht lassen, ob ich Wallbox oder S10-Aktivitäten antriggern möchte.
Steht in SEND_NOW_ACTION irgendwas für die Wallbox drinnen (z.B. "S10_WB_C_SETTINGS"), dann wird in die Sektion für die Wallbox verzweigt und der entsprechende RscpSet-Befehl aufgerufen. Ansonsten, wenn was mit "S10_HKW_..." kommt, eine entsprechende Aktion, die das Hauskraftwerk betrifft.

Wie müsste ich mir die Erweiterungen bzgl. der Ladeleistungsdaten, Powersave-Modus und Wetterprognosen vorstellen?
Käme hierfür dann ebenfalls jeweils eine Funktion (analog der int epReserveAction() ) dazu, um hierfür dann mit den eingestellten Werten die S10 SmartFunktion zu setzen?
In meiner "RscpMain_20210920_0852.txt" hatte ich ja in den Zeilen 171-247 das ganze Zeug hart reinprogrammiert, was ja nicht wirklich dorthin gehört sondern hier viel besser aufgehoben wäre. Allerdings bin ich was die RscpSet-Aufrufe angeht noch nicht so wirklich firm. Daher bin ich erst mal diesen Weg gegangen, um das Ziel zu erreichen.
In dem Abschnitt kann ich ja folgende Werte setzen:

  • Maximale Ladeleistung (TAG_EMS_MAX_CHARGE_POWER)
  • Lademodus (manuell / automatisch) (TAG_EMS_POWER_LIMITS_USED)
  • untere Lade-/Entladeschwelle (ISE_HM_SEND_BAT_DISCHARGE_START_POWER)
  • maximale Entladeleistung könnte man dann auch gleich mitnehmen (TAG_EMS_MAX_DISCHARGE_POWER)

Wenn Du mit einer SEND_NOW_ACTION arbeitest, könnten die jeweiligen Werte unabhängig voneinander gesetzt werden. Einmal die Ladeleistungssachen, getrennt davon dann auch Wetterprognose oder aber die Powersave-Funktion.

RscpSet.cpp
Hier wurde nichts geändert.

Was mich generell noch interessieren würde. Das betrifft jetzt zwar nicht den S10 könnte aber ja durch diese Methodik, dass ich Sachen über die Homematic antriggere auch erfolgen. Den Befehl könnte ich entweder über eine HM-Variable vorher setzen oder ihn in der "actionCheckHM.h" fest programmieren.
Wenn ich schon hingehen kann aus der Homematic was über Deine Entwicklung auszuführen, dann wäre es cool, wenn ich auch Befehle, welche auf dem Raspberry ausgeführt werden sollen, ausführen könnte. z.B. Raspberry neu starten, CCU-Historian neu starten ...
Ich könnte bspw. die SEND_NOW ausführen und in die SEND_NOW_ACTION irgendwas reinschreiben wie "MISC_CCUH_START" oder "MISC_RPI_BOOTNOW" ...
Der Kreativität wären keine Grenzen gesetzt!

Deine Info:
Bei dem EP Sollwert habe ich in der HM eine Variable mit Zeichenkette erstellt. In dieser muss der kWh Wert immer in 4 Stellen inkl. dem Punkt (Punkt für Komma) eingetragen werden. Beispiel: 4,2kWh >> 4.20 oder 12,3kWh >> 12.3
Anmerkung:
Ich fände es besser, wenn die Variablen in der Homematic als Zahl angelegt werden. Durch das, dass die Zahl in der Homematic als kWh angegeben wird und der Aufruf an den S10 per W erfolgt, werden die Nachkommastellen ohnehin überflüssig und Du kannst einen INT-Wert per RscpSet übergeben. Das hatte bei mir problemlos funktioniert.
Siehe Datei "actionCheckHM_20210824_1754.txt":
//####################################################
//Anpassung S10 Emergency Power Größe - Action-ID: S10_HKW_C_EP_SIZE (S10 Hauskraftwerk Change EmergencyPower Größe)
if (strcmp ("S10_HKW_C_EP_SIZE",hmSendNowAction) == 0){
read_HM(ISE_HM_SEND_EMERGENCY_POWER_SIZE, 4, hmSendEmergencyPowerSize);
S10CurrentBatEmergencyPowerSize = (int)(atof(hmSendEmergencyPowerSize) * 1000); // Umrechnung von kW in W
snprintf (OUT, (size_t)128, "/home/pi/E3dcGui/Rscp/RscpSet -ep 10000 %i", S10CurrentBatEmergencyPowerSize);
system(OUT);
}
//####################################################

Ich würde erst mal warten mit der Implementierung, bis Du Dir meine Anmerkungen angesehen hast. Ggf. baust Du ja noch etwas um. Mach Dir keinen Stress und nimm Dir die Zeit, die Du brauchst. Bei mir läuft aktuell alles wunderbar und somit sollten hoffentlich auch andere Benutzer Deines Projektes keine großartigen Probleme haben.
Auf jeden Fall ein sehr cooles Projekt, was Du hier aufgsesetzt hast.

Bei Fragen melde Dich einfach.

Falls ich mir weitere Dateien ansehen sollte, gib mir bescheid. Das Display nutze ich nicht. Hab "nur" die Homematic (piVCCU3), meine Hausapp auf Basis AIO Neo Creator (Visualisierung für Win, Android, iOS (hab ich aber nicht)) und dem CCU-Historian als Big Data. Läuft alles incl. Deinem Projekt auf nem Raspi.

Viele Grüße
Bernd

@nischram
Copy link
Owner

Hallo Bernd,

danke fürs Feedback.

Hier schnell ein paar Infos zu dein Punkten als Erklärung warum ich es so gemacht habe oder allgemein eine Erklärung.

#define TAG_EMS_ISE_POWER_WB_NET 65034 // ISE_ID_POWER_WB_NET

Nicht drin weil man es auch in der HM ausrechnen kann, aber könnte ich mal reinnehmen

#define TAG_EMS_ISE_WB_BTC 2065 // ISE_ID Batterie vor Auto (Priorität)
#define TAG_EMS_ISE_WB_BBC 2064 // ISE_ID Batterie nach Auto (Batteriestrom erlauben)

Hatte ich nicht zur HM gesendet weil die Info für mich nicht so wichtig ist es ist nur wichtig was ich jetzt aktivieren will, kann ich aber mal reinnehmen. Oder meinst du die nicht für den Status sondern zum sende? Die zum senden sind drin.
#define ISE_WB_SEND_BTC 0
#define ISE_WB_SEND_BBC 0

#define TAG_EMS_ISE_EMERGENCY_POWER_SIZE 58574 ...

sind drin heißen nur anders, EMERGENCY_POWER ist bei mir kurz "EP"

#define ISE_HM_SEND_BAT_CHARGE_MODUS 1474

Die Themen und Variablen zu den Limits werde ich im anderen Issue behandeln.

wbCheckHM.c Hier wurde nichts verändert. Denke ich passt auch so. Die WB-Funktionen konnte ich alle erfolgreich ausführen und über die Homematic ansteuern.

Ist nur in der Zip noch drin wird aber nicht weiter geführt

actionCheckHM.h Diese Datei beinhaltet aktuell die beiden Funktionen, ... Ggf. wäre es aber auch eine Idee, nur eine ISE_SEMD_NOW zu haben und in einer zweiten ISE dann die Action reinschreiben, die ausgeführt werden soll.

Kann man machen aber dann muss in der HM in der Variable exakt der Text stehen, auch mit Groß- und Kleinschreibung. Das bekommen wir vielleicht hin aber es werden sich einige Anwender damit schwer tun. so nehme ich lieber eine Variable mehr die abgefragt wird.

Wie müsste ich mir die Erweiterungen bzgl. der Ladeleistungsdaten, Powersave-Modus und Wetterprognosen vorstellen? Käme hierfür dann ebenfalls jeweils eine Funktion (analog der int epReserveAction() ) dazu, ...

JA so ähnlich hatte ich mir das vorgestellt. Das eigentliche senden mache ich dann mit einer Erweiterung in der RscpSet. Man könnte es zwar in die RscpMain bringen aber die ist so schon riesig ich möchte die nicht überladen. Und wenn ich es trenne kann man auch nur die Set alleine Nutzen ohne die Main laufen zu lassen. (Zweiter Pi andere Anwendung)

Wenn Du mit einer SEND_NOW_ACTION arbeitest, könnten die jeweiligen Werte unabhängig voneinander gesetzt werden. Einmal die Ladeleistungssachen, getrennt davon dann auch Wetterprognose oder aber die Powersave-Funktion.

Wie ich es mache weiß ich noch nicht aber getrennt einbauen muss ich es, deine Datei aus dem anderen Issue habe ich mir noch nicht näher angesehen. Sonst verzettelt ich mich und muss zu viele Sachen gleichzeitig einbauen und testen.

RscpSet.cpp Hier wurde nichts geändert.

Kommt noch!

Was mich generell noch interessieren würde. Das betrifft jetzt zwar nicht den S10 könnte aber ja durch diese Methodik, dass ich Sachen über die Homematic antriggere auch erfolgen. Den Befehl könnte ich entweder über eine HM-Variable vorher setzen oder ihn in der "actionCheckHM.h" fest programmieren. Wenn ich schon hingehen kann aus der Homematic was über Deine Entwicklung auszuführen, dann wäre es cool, wenn ich auch Befehle, welche auf dem Raspberry ausgeführt werden sollen, ausführen könnte. z.B. Raspberry neu starten, CCU-Historian neu starten ... Ich könnte bspw. die SEND_NOW ausführen und in die SEND_NOW_ACTION irgendwas reinschreiben wie "MISC_CCUH_START" oder "MISC_RPI_BOOTNOW" ... Der Kreativität wären keine Grenzen gesetzt!

Da beschreibst du aber eigentlich nicht die "actionCheckHM.h" sonder Standards aus meinem Programm. Das kannst du an fast jeder stelle einbauen und mit einem printsendHM(...) ausführen. Nur wenn es nicht in die xmlapi geht müsstest du die Funktion printsendHM(...) umbauen.

... Ich fände es besser, wenn die Variablen in der Homematic als Zahl angelegt werden.

Wenn mir die HM den gefallen tut immer mindestens 2 Nachkommastellen darzustellen, sollte es kein Problem sein. Nur wenn die HM z.B. 4.2 statt 4.20 für 4,2kWh speichert dann wird es doof weil die Zahl dann zu kurz ist. Aber das kann ich ja einfach testen...

Ich würde erst mal warten mit der Implementierung, bis Du Dir meine Anmerkungen angesehen hast. Ggf. baust Du ja noch etwas um.

Das macht Sinn sonst wird es doppelt und dreifach Arbeit.
So jetzt mach ich mal weiter... mit den Batterielimits auf dem Display hatte ich schon angefangen, aber im RSCP bin ich dafür noch nicht angekommen.

Gruß Nico

@bs0001
Copy link

bs0001 commented Sep 30, 2021

Hallo Bernd,

danke fürs Feedback.

Hier schnell ein paar Infos zu dein Punkten als Erklärung warum ich es so gemacht habe oder allgemein eine Erklärung.

#define TAG_EMS_ISE_POWER_WB_NET 65034 // ISE_ID_POWER_WB_NET

Nicht drin weil man es auch in der HM ausrechnen kann, aber könnte ich mal reinnehmen
Ich dachte mir, dann werden die Zahlen alle an einer Stelle ermittelt und an die Homematic geschickt. Klar, könnte auch dort berechnet werden aber bis man dann alles zusammen hat, wo was passiert, erschien mir das für die geschicktere Lösung.

#define TAG_EMS_ISE_WB_BTC 2065 // ISE_ID Batterie vor Auto (Priorität)
#define TAG_EMS_ISE_WB_BBC 2064 // ISE_ID Batterie nach Auto (Batteriestrom erlauben)

Hatte ich nicht zur HM gesendet weil die Info für mich nicht so wichtig ist es ist nur wichtig was ich jetzt aktivieren will, kann ich aber mal reinnehmen. Oder meinst du die nicht für den Status sondern zum sende? Die zum senden sind drin. #define ISE_WB_SEND_BTC 0 #define ISE_WB_SEND_BBC 0
Ja, ist korrekt. Hat auch funktioniert, dass ich mittels der SEND-Inhalte die Werte verändern konnte. Allerdings hat mir der Weg zurück in die Homematic gefehlt, damit ich sehe, was im S10 bzw. im Portal eingestellt wurde. So ist es konsistent und die Infos gehen in 2 Richtungen. Von daher wäre es schön, wenn auch die gesetzten Werte in die Homematic geschrieben werden würden.

#define TAG_EMS_ISE_EMERGENCY_POWER_SIZE 58574 ...

sind drin heißen nur anders, EMERGENCY_POWER ist bei mir kurz "EP"
Uups, das hab ich dann wohl übersehen. Dann muss ich nur beim Matching aufpassen, wenn ich die von Dir neu aufgenommenen Variablen aus der parameter.h.temp in meine übernehme.

#define ISE_HM_SEND_BAT_CHARGE_MODUS 1474

Die Themen und Variablen zu den Limits werde ich im anderen Issue behandeln.
Passt!

wbCheckHM.c Hier wurde nichts verändert. Denke ich passt auch so. Die WB-Funktionen konnte ich alle erfolgreich ausführen und über die Homematic ansteuern.

Ist nur in der Zip noch drin wird aber nicht weiter geführt

actionCheckHM.h Diese Datei beinhaltet aktuell die beiden Funktionen, ... Ggf. wäre es aber auch eine Idee, nur eine ISE_SEMD_NOW zu haben und in einer zweiten ISE dann die Action reinschreiben, die ausgeführt werden soll.

Kann man machen aber dann muss in der HM in der Variable exakt der Text stehen, auch mit Groß- und Kleinschreibung. Das bekommen wir vielleicht hin aber es werden sich einige Anwender damit schwer tun. so nehme ich lieber eine Variable mehr die abgefragt wird.
Als Empfehlung könntest du ja schreiben, dass generell Großbuchstaben verwendet werden sollten und sich die Nutzer am Besten an die dann von Dir (falls Du es so machst) verwendete Nomenklatur halten sollten. Vielleicht inline im Coding als Hinweis reinschreiben.
Ansonsten müsste für jede neue Aktion die ansteht immer eine neue SEND_NOW-Variable in der Homematic angelegt werden.
So wären die beiden Variablen fix und es wäre nur im Homematic-Programm (hierfür ist ja auch gar kein Skript nötig sondern reine Systemvariablenverwendung im Homematic-Programm) zu setzen als auch in der RscpSet dann eine entsprechende Erweiterung vorzunehmen. Die Blöcke kann man sich darin einfach kopieren und nach eigenem Gusto anpassen.
Ich könnte mir vorstellen, dass die meisten alles so belassen wie Du es auslieferst und die Wenigen, die darüber hinaus noch was machen möchten (so jemand wie ich bspw.), die können sich dann austoben. Ferner sollten diese User dann schon wissen, was sie tun.

Wie müsste ich mir die Erweiterungen bzgl. der Ladeleistungsdaten, Powersave-Modus und Wetterprognosen vorstellen? Käme hierfür dann ebenfalls jeweils eine Funktion (analog der int epReserveAction() ) dazu, ...

JA so ähnlich hatte ich mir das vorgestellt. Das eigentliche senden mache ich dann mit einer Erweiterung in der RscpSet. Man könnte es zwar in die RscpMain bringen aber die ist so schon riesig ich möchte die nicht überladen. Und wenn ich es trenne kann man auch nur die Set alleine Nutzen ohne die Main laufen zu lassen. (Zweiter Pi andere Anwendung)
Ja, das ist sicherlich eine gute Idee, diese beiden etwas zu trennen. Dann ist alles, was in Richtung S10 an Daten gesetzt werden soll separiert. Gefällt mir!

Wenn Du mit einer SEND_NOW_ACTION arbeitest, könnten die jeweiligen Werte unabhängig voneinander gesetzt werden. Einmal die Ladeleistungssachen, getrennt davon dann auch Wetterprognose oder aber die Powersave-Funktion.

Wie ich es mache weiß ich noch nicht aber getrennt einbauen muss ich es, deine Datei aus dem anderen Issue habe ich mir noch nicht näher angesehen. Sonst verzettelt ich mich und muss zu viele Sachen gleichzeitig einbauen und testen.
Ja, eins nach dem anderen. Ich hatte ja ziemlich viel geschrieben :-)

RscpSet.cpp Hier wurde nichts geändert.

Kommt noch!

Was mich generell noch interessieren würde. Das betrifft jetzt zwar nicht den S10 könnte aber ja durch diese Methodik, dass ich Sachen über die Homematic antriggere auch erfolgen. Den Befehl könnte ich entweder über eine HM-Variable vorher setzen oder ihn in der "actionCheckHM.h" fest programmieren. Wenn ich schon hingehen kann aus der Homematic was über Deine Entwicklung auszuführen, dann wäre es cool, wenn ich auch Befehle, welche auf dem Raspberry ausgeführt werden sollen, ausführen könnte. z.B. Raspberry neu starten, CCU-Historian neu starten ... Ich könnte bspw. die SEND_NOW ausführen und in die SEND_NOW_ACTION irgendwas reinschreiben wie "MISC_CCUH_START" oder "MISC_RPI_BOOTNOW" ... Der Kreativität wären keine Grenzen gesetzt!

Da beschreibst du aber eigentlich nicht die "actionCheckHM.h" sonder Standards aus meinem Programm. Das kannst du an fast jeder stelle einbauen und mit einem printsendHM(...) ausführen. Nur wenn es nicht in die xmlapi geht müsstest du die Funktion printsendHM(...) umbauen.

... Ich fände es besser, wenn die Variablen in der Homematic als Zahl angelegt werden.

Wenn mir die HM den gefallen tut immer mindestens 2 Nachkommastellen darzustellen, sollte es kein Problem sein. Nur wenn die HM z.B. 4.2 statt 4.20 für 4,2kWh speichert dann wird es doof weil die Zahl dann zu kurz ist. Aber das kann ich ja einfach testen...
Das mit den 2 Nachkommastellen ist bei mir bei allen Zahlen-Variablen in der Homematic so. Ggf. hilft bei Bedarf auch ein Multiplizieren des Wertes und Runden.
In der "RscpMain_20210920_0852.txt" hatte ich die maximale Ladeleistung auf einen Runden wert bringen wollen, da ich ja eine völlig krumme Zahl bei der Ermittlung dieser erhalte.
Das habe ich in der Zeile 201 / 1072 gemacht. Vielleicht ist das ja hilfreich.
201: uPower = (int)(atof(hmSendMaxChargePower) * 1000); // Umrechnung von kW in W
1072: printsendHM(CounterHM, TAG_EMS_ISE_EMERGENCY_POWER_SIZE, (OUT_SE_PARAM_EP_RESERVE_W / 1000)); // BS - Add
Und hier der Weg aus der Homematic in Richtung S10 aus der Datei "actionCheckHM_20210824_1754.txt", Zeile 56/57:
56: read_HM(ISE_HM_SEND_EMERGENCY_POWER_SIZE, 4, hmSendEmergencyPowerSize);
57: S10CurrentBatEmergencyPowerSize = (int)(atof(hmSendEmergencyPowerSize) * 1000); // Umrechnung von kW in W

Ich würde erst mal warten mit der Implementierung, bis Du Dir meine Anmerkungen angesehen hast. Ggf. baust Du ja noch etwas um.

Das macht Sinn sonst wird es doppelt und dreifach Arbeit. So jetzt mach ich mal weiter... mit den Batterielimits auf dem Display hatte ich schon angefangen, aber im RSCP bin ich dafür noch nicht angekommen.

Gruß Nico

@nischram
Copy link
Owner

Hi,

kurze Info, die Zeichenkette konnte ich ohne Änderungen an der Software auf Zahl umstellen und es klappt trotzdem.

VG

@bs0001
Copy link

bs0001 commented Sep 30, 2021

👍

nischram added a commit that referenced this issue Oct 3, 2021
- Issue #58 Mit der "Rscp/actionCheckHM.c" kann nun auch die Notstromreserve von der HM aus geändert werden.
- Issue #67 Auf dem Display so wie mit der "Rscp/actionCheckHM.c" können sie BAtterie-Limits des S10 geändert werden.
- Issue #66 Auf dem Display werden einige Sonderinformationen angezeigt.
- "Rscp/wbCheckHM.c" umgebaut nach "Rscp/actionCheckHM.c".
@nischram
Copy link
Owner

nischram commented Oct 3, 2021

Hallo Bernd,

ich habe, wie schon im anderen Issue #67 erwähnt, die wbCheckHM umgebaut in actionCheckHM. So kann die Notstromreserve jetzt auch aus der HM gesetzt werden.

Viele Grüße Nico

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants