Hilfe bei Programm
Moderator: Co-Administratoren
-
- Beiträge: 81
- Registriert: 14.05.2020, 07:58
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 14 Mal
Hilfe bei Programm
Hi,
Ich möchte anhand des Ladezustands der Batterie und anhand der Sonneneinstrahlung die drei Phasen des Heizstabes schalten.
Dabei soll die Batterie nicht unbedingt entladen werden. Natürlich soll der Überschuss genutzt werden.
Die SV sind vorhanden und funktionieren.
Je höher der Ladezustand der Batterie unter der Bedingung, dass die Sonne genug Leistung liefert, sollen die Phasen dazu geschalten werden und umgekehrt.
Danke und Gruß
Ich möchte anhand des Ladezustands der Batterie und anhand der Sonneneinstrahlung die drei Phasen des Heizstabes schalten.
Dabei soll die Batterie nicht unbedingt entladen werden. Natürlich soll der Überschuss genutzt werden.
Die SV sind vorhanden und funktionieren.
Je höher der Ladezustand der Batterie unter der Bedingung, dass die Sonne genug Leistung liefert, sollen die Phasen dazu geschalten werden und umgekehrt.
Danke und Gruß
Zuletzt geändert von oppey am 24.05.2023, 14:30, insgesamt 1-mal geändert.
-
- Beiträge: 9807
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 711 Mal
- Danksagung erhalten: 1656 Mal
Re: Hilfe bei Programm
Die Bedingungen von Block 3 sind auch in Block 2 erfüllt, daher wird er immer ausgeführt.
Oder was ist konkret dein Problem?
Tip: 3 Programme statt einem
Oder was ist konkret dein Problem?
Tip: 3 Programme statt einem
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 81
- Registriert: 14.05.2020, 07:58
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 14 Mal
Re: Hilfe bei Programm
hi,
klar das die Bedingungen im jeweiligen Block davor erfüllt sind. Die Leistung soll sich ja addieren.
Der Heizstab hat drei Wendel die jeweils 3kw haben und mit Schützen geschaltet werden.....
Ich würde gerne auf noch mehr Programme verzichten.
klar das die Bedingungen im jeweiligen Block davor erfüllt sind. Die Leistung soll sich ja addieren.
Der Heizstab hat drei Wendel die jeweils 3kw haben und mit Schützen geschaltet werden.....
Ich würde gerne auf noch mehr Programme verzichten.
- robbi77
- Beiträge: 13903
- Registriert: 19.01.2011, 19:15
- System: CCU
- Wohnort: Landau
- Hat sich bedankt: 182 Mal
- Danksagung erhalten: 747 Mal
Re: Hilfe bei Programm
Sobald ein WENN erfüllt ist (wahr) wird das zugehörige DANN ausgeführt und Feierabend. Und das ganze halt von oben nach unten …
Wenn also dein zweites WENN (Sonst wenn) erfüllt ist wird das DANN ausgeführt und das Programm ist „beendet“. Da ist egal wieviel noch danach kommt.
Wenn also dein zweites WENN (Sonst wenn) erfüllt ist wird das DANN ausgeführt und das Programm ist „beendet“. Da ist egal wieviel noch danach kommt.
-
- Beiträge: 9807
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 711 Mal
- Danksagung erhalten: 1656 Mal
Re: Hilfe bei Programm
Dann musst Du Deine Programmierung aber auf die Wünsche der WebUi ausrichten.
Also erst die höchsten Werte abfragen, dann die niedrigeren.
Und immer den Zustand des Heizstabs mit abfragen. Wenn der schon ein ist, dann muss er nciht nochmal eingeschaltet werden.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 81
- Registriert: 14.05.2020, 07:58
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 14 Mal
Re: Hilfe bei Programm
Guten Morgen,
eigentlich bin ich der Meinung, dass ich gar nicht so verkehrt liege. Vielleicht verstehe ich auch nicht ganz was du meinst.
Habe jetzt nochmal verfeinert. Was fehlt sind die Bedingungen um die Phasen auch wieder auszuschalten.
Da bin ich dann mittlerweile soweit, dass ich wohl ein zweites Programm anlegen müsste...
eigentlich bin ich der Meinung, dass ich gar nicht so verkehrt liege. Vielleicht verstehe ich auch nicht ganz was du meinst.
Habe jetzt nochmal verfeinert. Was fehlt sind die Bedingungen um die Phasen auch wieder auszuschalten.
Da bin ich dann mittlerweile soweit, dass ich wohl ein zweites Programm anlegen müsste...
- Henke
- Beiträge: 1538
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 144 Mal
- Danksagung erhalten: 312 Mal
Re: Hilfe bei Programm
Ich würde das Programm nur zum Triggern verwenden und den Rest über ein Script erledigen. Macht weniger Kopfschmerzen.
dom.GetObject( "...") natürlich die Werte eintragen der Geräte
Code: Alles auswählen
real BatStatus = dom.GetObject( "..." );
real PvPover = dom.GetObject( "..." );
boolean A1 = false;
boolean A2 = false;
boolean A3 = false;
if ( (BatStatus > 0.89 ) && (PvPover> 3000.0))
{
A1 = true;
}
if ( (BatStatus > 0.93 ) && (PvPover> 6000.0) )
{
A2 = true;
}
if ( (BatStatus > 0.95 ) && (PvPover> 9000.0) )
{
A3 = true;
}
if ( dom.GetObject( "A1...").Value() != A1 )
{
dom.GetObject( "A1...").State(A1);
}
if ( dom.GetObject( "A2...").Value() != A2 )
{
dom.GetObject( "A2...").State(A2 );
}
if ( dom.GetObject( "A2...").Value() != A2 )
{
dom.GetObject( "A2...").State( A2 );
}
-
- Beiträge: 9807
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 711 Mal
- Danksagung erhalten: 1656 Mal
Re: Hilfe bei Programm
Computer scheren sich nicht um Meinungen, da geht es nur um Logik. Vielleicht mal den Thread zur WebUI Logik durchgehen.
Trigger und Bedingungsprüfung sind unabhängig voneinander. Das heißt es wird nicht der Block ausgeführt, der das Programm getriggert hat, sondern der erste, der logisch wahr ergibt.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 9807
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 711 Mal
- Danksagung erhalten: 1656 Mal
Re: Hilfe bei Programm
Wohl wahr. Geht aber auch über WebUI Programm. Aber da muss selbst ich noch 5 Minuten drüber nachdenken zumindest wenn man es unbedingt in 1 Programm lösen muss.
Die 3 Blöcke in jeweils ein eigenes Programm und fertig.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 81
- Registriert: 14.05.2020, 07:58
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 14 Mal
Re: Hilfe bei Programm
wenn ich mit dem WebUI schon nicht zurecht komme sollte ich wahrscheinlich nicht noch mit scripten anfangen.....aber muss das sin etwa so aussehen?Henke hat geschrieben: ↑25.05.2023, 06:58Ich würde das Programm nur zum Triggern verwenden und den Rest über ein Script erledigen. Macht weniger Kopfschmerzen.
dom.GetObject( "...") natürlich die Werte eintragen der GeräteCode: Alles auswählen
real BatStatus = dom.GetObject( "..." ); real PvPover = dom.GetObject( "..." ); boolean A1 = false; boolean A2 = false; boolean A3 = false; if ( (BatStatus > 0.89 ) && (PvPover> 3000.0)) { A1 = true; } if ( (BatStatus > 0.93 ) && (PvPover> 6000.0) ) { A2 = true; } if ( (BatStatus > 0.95 ) && (PvPover> 9000.0) ) { A3 = true; } if ( dom.GetObject( "A1...").Value() != A1 ) { dom.GetObject( "A1...").State(A1); } if ( dom.GetObject( "A2...").Value() != A2 ) { dom.GetObject( "A2...").State(A2 ); } if ( dom.GetObject( "A2...").Value() != A2 ) { dom.GetObject( "A2...").State( A2 ); }
Code: Alles auswählen
real BatStatus = dom.GetObject( "E3DC Batterie Status" );
real PvPower = dom.GetObject( "E3dc PV Power" );
boolean A1 = false;
boolean A2 = false;
boolean A3 = false;
if ( (BatStatus > 0.89 ) && (PvPower> 3000.0))
{
A1 = true;
}
if ( (BatStatus > 0.93 ) && (PvPower> 6000.0) )
{
A2 = true;
}
if ( (BatStatus > 0.95 ) && (PvPower> 9000.0) )
{
A3 = true;
}
if ( dom.GetObject( "A4.1 PV PH1").Value() != A1 )
{
dom.GetObject( "A4.1 PV PH1").State(A1);
}
if ( dom.GetObject( "A4.2 PV PH2").Value() != A2 )
{
dom.GetObject( "A4.2 PV PH2").State(A2 );
}
if ( dom.GetObject( "A4.3 PV PH3").Value() != A3 )
{
dom.GetObject( "A4.3 PV PH3").State( A3 );
}