Nee. Das ist schon korrekt so, da im Skript später noch der Wert des Datenpunkts abgefragt und gesetzt wird.hpk hat geschrieben: Müsste das im Code nicht
heissen??object ventilAktorDP = (dom.GetObject(ID_CHANNELS).Get(VentilSchalterKanal)).DPByHssDP("STATE").Value();
Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Moderator: Co-Administratoren
-
- Beiträge: 10659
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Hallo hab jetzt den ersten Teil getestet - bekomme als Ausgabe:
Müsste bei Ventil-Zustand nicht 0 oder 1 stehen?
MFG
Code: Alles auswählen
Aktuelle Temperatur: 23.400000
Ziel-Temperatur: 26.000000
Ventil-Zustand: false
MFG
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Ich hätte jetzt auch 0 oder 1 erwartet, false deutet darauf hin, das der Kanal nicht gefunden wurde.
Kannst du aber sleber teste, indem du den aktor einschaltest und das Skript erneut ausführst. Wenn dann "true" Zurück kommt weisst du das die rückgabe false,ture ist und wenn dort immer noch false steht, dann ist vermutlich der Aktorname falsch. Der Datenpunkt sollte stimmen!
kannst nu mal versuchen aus dem object ein var zu machen, da du ja kein object, sondern einen Wert zurück erhälst. Aber die Homematic deklariert die Variabeln eh so um wie die deklariert werden. Von daher am besten immer var verwende, das stimmt dann immer
Kannst du aber sleber teste, indem du den aktor einschaltest und das Skript erneut ausführst. Wenn dann "true" Zurück kommt weisst du das die rückgabe false,ture ist und wenn dort immer noch false steht, dann ist vermutlich der Aktorname falsch. Der Datenpunkt sollte stimmen!
kannst nu mal versuchen aus dem object ein var zu machen, da du ja kein object, sondern einen Wert zurück erhälst. Aber die Homematic deklariert die Variabeln eh so um wie die deklariert werden. Von daher am besten immer var verwende, das stimmt dann immer
Gruß Carsten
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Habe es jetzt nochmal mit eingeschalteten Aktor getestet - und ja jetzt wird der Wert true ausgegeben.
Mfg
Mfg
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Weiß leider nicht wie ich aus einem object ein var machen kann?kannst nu mal versuchen aus dem object ein var zu machen, da du ja kein object, sondern einen Wert zurück erhälst. Aber die Homematic deklariert die Variabeln eh so um wie die deklariert werden. Von daher am besten immer var verwende, das stimmt dann immer
Meinst Du aus object ventilAktorDP - var ventilAktorDP schreiben?
Mfg
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
ja das meinte ich, ist aber nicht wichtig, nur für die Lesbarkeit. Funktion ist ja gegeben!
jetzt kannst du den Code testen..
aber wie in meinem ersten post geschrieben du musst + und - der hysterese tauschen, sonst ist es ein offset!
jetzt kannst du den Code testen..
aber wie in meinem ersten post geschrieben du musst + und - der hysterese tauschen, sonst ist es ein offset!
Code: Alles auswählen
string VentilSchalterKanal = "Buero.Heizung:1";
string Raumregler = "Buero.Thermostat";
real hysterese = 0.5;
real aktuelleTemperatur; real zielTemperatur; object ventilAktorDP;
aktuelleTemperatur = (dom.GetObject(ID_CHANNELS).Get(Raumregler#":2")).DPByHssDP("ACTUAL_TEMPERATURE").Value();
zielTemperatur = (dom.GetObject(ID_CHANNELS).Get(Raumregler#":2")).DPByHssDP("SET_TEMPERATURE").Value();
ventilAktorDP = (dom.GetObject(ID_CHANNELS).Get(VentilSchalterKanal)).DPByHssDP("STATE");
if(aktuelleTemperatur < (zielTemperatur - hysterese)){ !Aktor einschalten, wenn Temperatur zu niedrig
if(!ventilAktorDP.Value()){ventilAktorDP.State(1);}
}
else{
if(aktuelleTemperatur > (zielTemperatur + hysterese)){ !Aktor ausschalten, wenn Temperatur zu hoch
if(ventilAktorDP.Value()){ventilAktorDP.State(0);}
}
}
Gruß Carsten
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Funktioniert leider nicht - hab es gerade getestet - der Aktor schaltet leider nicht.ja das meinte ich, ist aber nicht wichtig, nur für die Lesbarkeit. Funktion ist ja gegeben!
jetzt kannst du den Code testen..
Mfg
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
dann versuche es mal bitte mit den Codezeilen:
Code: Alles auswählen
string VentilSchalterKanal = "Buero.Heizung:1";
string Raumregler = "Buero.Thermostat";
real hysterese = 0.5;
real aktuelleTemperatur; real zielTemperatur; var ventilAktorDP;
aktuelleTemperatur = (dom.GetObject(ID_CHANNELS).Get(Raumregler#":2")).DPByHssDP("ACTUAL_TEMPERATURE").Value();
zielTemperatur = (dom.GetObject(ID_CHANNELS).Get(Raumregler#":2")).DPByHssDP("SET_TEMPERATURE").Value();
ventilAktorDP = (dom.GetObject(ID_CHANNELS).Get(VentilSchalterKanal)).DPByHssDP("STATE");
if(aktuelleTemperatur < (zielTemperatur - hysterese))
{ !Aktor einschalten, wenn Temperatur zu niedrig
if(ventilAktorDP.Value() == false)
{
ventilAktorDP.State(1);
}
}
else
{
if(aktuelleTemperatur > (zielTemperatur + hysterese))
{ !Aktor ausschalten, wenn Temperatur zu hoch
if(ventilAktorDP.Value() == true)
{
ventilAktorDP.State(0);
}
}
}
Gruß Carsten
Re: Neue Firmware - Program läuft nicht mehr - Hilfe!!!
Hallo vielen Dank!! Jetzt funktioniert es!!
MFG
MFG