WRCD Display aktualisiert nicht mehr

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

felixw
Beiträge: 10
Registriert: 20.12.2023, 09:00
System: Alternative CCU (auf Basis OCCU)

WRCD Display aktualisiert nicht mehr

Beitrag von felixw » 20.12.2023, 09:37

Liebes Homematic Forum,

Ich nutze den WRCD bereits seit mehreren Jahren und habe nun einen 2. WRCD in mein Homematic System aufgenommen.
Seit diesem Zeitpunkt funktionieren die erstellten Skripte (automatischer Update, manueller Update über Taster) weder für den neuen noch für den alten WRCD.

Alle Skripte (taster/automatisch sowie neu und alt) sind fast identisch nur, dass der Kanal

Code: Alles auswählen

var kanal
und 1 Parameter

Code: Alles auswählen

dom.GetObject('output2')
in der Ausgabe unterschiedlich sind.
Ich habe zum debug eine Zeile eingefügt die mir den wert des angesprochenen Kanals auch dann in eine Systemvariable schreibt.

Code: Alles auswählen

! set output channel to WRCD Display 
var kanal = ("HmIP-WRCD_OG_Bad:3");

! initialize helpers 
string mytime = system.Date("%H:%M");
integer temp = 0;
integer tempWT = 0;

! get outside temperature and forecast and warmwater temperature
string temperature = dom.GetObject("OutsideTemperature").Value();
integer weatherforcast = dom.GetObject("WetterFCIcon").Value().ToInteger();
string waterTemp = dom.GetObject("WaterTankTemperature").Value();

! format outside temperature for display
temp = temperature.ToInteger();

if(temp > 0){
  temperature = "+" + temperature.ToString(0) + "^C";
}
else {
  temperature = temperature.ToString(0) + "^C";
}

! format warmwater temperature for display
if(tempWT > 0){
  waterTemp = "+" + waterTemp.ToString(0) + "^C";
}
else {
  waterTemp = waterTemp.ToString(0) + "^C";
}
waterTemp = "Temp " + waterTemp;

! debug to be removed
! string output1 =mytime + "  " + waterTemp;
! WriteLine(output1);
! dom.GetObject('output').State(output1);

! get outside battery and power values
string batteryState = dom.GetObject("BatterieLadung").Value(); ! muss in % formatiert werden
string wrPower = dom.GetObject("BatterieProduction").Value();  ! muss in kW formatiert werden
string houseConsumption = dom.GetObject("BatterieConsumption").Value(); ! muss in kW formatiert werden
real tempPWR;

tempPWR = wrPower.ToFloat()*0.001;

! Format display to fit values > 10kW for production
if(tempPWR < 10){
  wrPower = tempPWR.ToString(1);
}
else {
  wrPower = tempPWR.ToString(0);
}

tempPWR = houseConsumption.ToFloat()*0.001;
houseConsumption = tempPWR.ToString(1);

string output = batteryState.ToString(0) + "%/" + wrPower + "/" + houseConsumption + "kW";

! Zeile 2 WaterTemperature
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_STRING").State(waterTemp);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ID").State(2);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ALIGNMENT").State(1);
! dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_COMMIT").State(true);

! Zeile 3 Temperature + Forecast
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_STRING").State(temperature);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ICON").State(weatherforcast); 
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ID").State(3);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ALIGNMENT").State(1);
! dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_COMMIT").State(true);

! Zeile 4 - power values
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_STRING").State(output);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ID").State(4);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ALIGNMENT").State(1);
! dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_COMMIT").State(true);

! Zeile 5 - last update value
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_STRING").State("Update " + mytime);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ID").State(5);
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_ALIGNMENT").State(1);

! Alle Zeilen fixieren
dom.GetObject(kanal).DPByHssDP("DISPLAY_DATA_COMMIT").State(true);

dom.GetObject('output2').State(mytime + "last update: " + dom.GetObject(kanal).Address());
Ausführen:
Interessanter weise funktioniert das Skript auf beiden Displays tadellos (Aktualisieren des Displays als auch schreiben der variablen) wenn ich dieses im Skript Editor starte.
Screenshot 2023-12-21 080300.png
Screenshot 2023-12-21 080300.png (7.6 KiB) 402 mal betrachtet
Screenshot 2023-12-21 080549.png
Screenshot 2023-12-21 080549.png (5.71 KiB) 402 mal betrachtet
Das Display Update funktioniert allerdings weder beim Ausführen auf dem Button in der Raspberrymatic (3.73.9.20231130), noch beim betätigen des Schalters, noch beim automatisch stündlichen update).

Meine Idee wäre noch den neuen Taster wieder abzulernen und dann erneut die Funktion für den alten Taster zu überprüfen.
Im besten Fall würde ein reproduzierbares Szenario ergeben aber mein Problem nicht lösen.

Ich hoffe ihr habt Ideen und könnt weiterhelfen.

felixw
Beiträge: 10
Registriert: 20.12.2023, 09:00
System: Alternative CCU (auf Basis OCCU)

Re: WRCD Display aktualisiert nicht mehr

Beitrag von felixw » 25.12.2023, 14:35

Kurzes Update:

Nach dem ablernen des 2. (neuen) WRCD funktionieren alle Skripte wieder genau so wie vorher ohne Fehler.
Nochmalige Frage und Bitte. Gibt es Ideen warum der Code nicht zum Update des Displays führen könnte bzw. Welchen Debug es geben könnten den ich noch einschalten kann.

Danke für Eure Hilfe

Xel66
Beiträge: 14172
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: WRCD Display aktualisiert nicht mehr

Beitrag von Xel66 » 25.12.2023, 14:43

felixw hat geschrieben:
25.12.2023, 14:35
Gibt es Ideen warum der Code nicht zum Update des Displays führen könnte bzw.
Typo beim Gerätenamen?

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

MichaelN
Beiträge: 9687
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: WRCD Display aktualisiert nicht mehr

Beitrag von MichaelN » 25.12.2023, 14:49

Was steht zum Zeitpunkt der Ausführung im Fehlerprotokoll?
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 +++

felixw
Beiträge: 10
Registriert: 20.12.2023, 09:00
System: Alternative CCU (auf Basis OCCU)

Re: WRCD Display aktualisiert nicht mehr

Beitrag von felixw » 28.12.2023, 09:39

@Xel66: ich hatte keinen im code gefunden und da die beiden Skripte mit nur 1 angelernten Taster/Display ohne Probleme funktionieren glaube ich nicht an einen Typo (und finde auch keinen im Skript)

@MichaelN: Ich habe die "Protokolliert" variable am Taster eingeschaltet und den Test mit Update des Displays über die RaspberryMatic Oberfläche
Im Messages Log bekomme ich den Hinweis, dass es das jeweils andere Gerät nicht angesprochen werden kann (dieses ist aber im ausführenden Skript nicht enthalten) Ich habe den Auszug aus dem Log angehängt
Dateianhänge
messages.log.txt
(19.25 KiB) 10-mal heruntergeladen

felixw
Beiträge: 10
Registriert: 20.12.2023, 09:00
System: Alternative CCU (auf Basis OCCU)

Re: WRCD Display aktualisiert nicht mehr

Beitrag von felixw » 28.12.2023, 09:42

noch ein Zusatz. Wenn ich den alten WRCD ablerne und den neuen alleine betreibe funktioniert die Arbeitsweise des Skripts und die Funktion des (neuen) Displays tadellos.
Somit gehe ich davon aus, dass der "Refresh Fehler" nur bei 2 angelernten WRCDs passiert und nicht ein Fehler des neuen WRCD ist

MichaelN
Beiträge: 9687
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: WRCD Display aktualisiert nicht mehr

Beitrag von MichaelN » 28.12.2023, 10:32

002A5F29998FCE Ist also das andere WRCD?

Das macht in der Tat keinen Sinn.

Was passiert, wenn du die WRCD über ein einfaches WebUI Programm aktualisierst?
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 +++

felixw
Beiträge: 10
Registriert: 20.12.2023, 09:00
System: Alternative CCU (auf Basis OCCU)

Re: WRCD Display aktualisiert nicht mehr

Beitrag von felixw » 28.12.2023, 10:50

002A5F29998FCE ja ist der 2.

Sie aktualisieren gefühlt nur durch Zufall. (egal welcher)
Grösste chance ist wenn ich direkt den Code im Editor ausführe (aber auch nicht immer)
Aus der GUI heraus (siehe Screenshot im ersten Beitrag) geht es nicht.
Vom Taster aus wird das Programm beim jeweiligen WRCD ausgeführt aber das Display aktualisiert nicht

MichaelN
Beiträge: 9687
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: WRCD Display aktualisiert nicht mehr

Beitrag von MichaelN » 28.12.2023, 11:56

Wie sieht das einfach WebUI TEst Programm konkret aus (Screenshot)
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 +++

felixw
Beiträge: 10
Registriert: 20.12.2023, 09:00
System: Alternative CCU (auf Basis OCCU)

Re: WRCD Display aktualisiert nicht mehr

Beitrag von felixw » 28.12.2023, 15:44

Anbei der screenshot zum starten des Programms.
Der Code steht oben im Verlauf und ich habe mittlerweile die Variable kanal= "HmIP-WRCD_OG_Bad:3" wieder auf das ursprüngliche Gerät (HmIP-WRCD_EG_Wohnzimmer:3) gelegt
Screenshot 2023-12-28 153751.png

Antworten

Zurück zu „RaspberryMatic“