[GELÖST] Automatisch angelegte Systemvariable wird nicht beim Kanal angezeigt

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

[GELÖST] Automatisch angelegte Systemvariable wird nicht beim Kanal angezeigt

Beitrag von Henke » 12.09.2022, 15:53

Wenn ich mit diesem Script eine Systemvariable anlege und diese mit einem Kanal verknüpfe, so wird sie unter dem Kanal im RaspberryMatic nicht angezeigt. Bearbeite ich die Systemvariable im RaspberryMatic und bestätige, ohne etwas zu ändern, ist die Anzeige da.
Was fehlt im Code, um das zu automatisieren?

Code: Alles auswählen

string sv_Gruppe = "U-Bad";	   ! Gruppenname der Systemvariablen
string sv_Info = "Info";   ! Info

! Name des Temperatur-/Feuchtesensors im Innenraum - "HmIP-WTH-2 U-Bad:1"
object oTHi = channels.Get (1468);

string sv_ref_Info = sv_Gruppe # "." # sv_Info;
object svOj_Info;
string itemId;
foreach(itemId,oTHi.DPs())
{
    var item = dom.GetObject(itemId);

    if (item.IsTypeOf(OT_VARDP))
    {
    	if ( item.Name() == sv_ref_Info)
    	{
!        var device = dom.GetObject(item.Device());
   	    WriteLine(itemId #" " #item #": ");
        svOj_Info = item;
        break;
        }
    }
}
!Wenn noch keine Systemvariable vorhanden, diese anlegen
object svOj_list;
if (!svOj_Info)
{
 object svOj_list = dom.GetObject(ID_SYSTEM_VARIABLES);
 svOj_Info = dom.CreateObject(OT_VARDP);
 svOj_list.Add(svOj_Info.ID());
 svOj_Info.Name(sv_ref_Info);
 svOj_Info.ValueType(ivtString);
 svOj_Info.ValueSubType(istChar8859);
 svOj_Info.DPInfo('Info Script Schimmelwarnung');
 svOj_Info.Internal(false);
 svOj_Info.Visible(true);
 svOj_Info.Channel(oTHi.ID());
 dom.RTUpdate(0);
}
LG
Michael
Zuletzt geändert von Roland M. am 12.09.2022, 22:42, insgesamt 2-mal geändert.
Grund: Thema verschoben

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

Re: Automatisch angelegte Systemvariable wird nicht beim Kanal angezeigt

Beitrag von MichaelN » 12.09.2022, 16:14

Du musst die SV wohl noch als Datenpunkt im Channel anlegen:
Unbenannt.JPG
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 +++

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: Automatisch angelegte Systemvariable wird nicht beim Kanal angezeigt

Beitrag von Henke » 12.09.2022, 16:54

Herzlichen Dank!

Code: Alles auswählen

oTHi.DPs().Add (svOj_Raum_R_ges);
Das war die Lösung.

LG
Michael

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

Re: [GELÖST] Automatisch angelegte Systemvariable wird nicht beim Kanal angezeigt

Beitrag von MichaelN » 12.09.2022, 16:58

Oh, das war einfach. Und ich befürchtete schon man müsste alles händisch coden.
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 +++

Benutzeravatar
Baxxy
Beiträge: 10832
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 608 Mal
Danksagung erhalten: 2227 Mal

Re: [GELÖST] Automatisch angelegte Systemvariable wird nicht beim Kanal angezeigt

Beitrag von Baxxy » 12.09.2022, 17:01

Das kann man gut "reverse-engineeren" wenn man mit dem SDV ein WebUI-Backup von einem Gerät erzeugt welches Kanalverknüpfte SysVars hat.
Und sich dann das "Restore-Script" anschaut :wink:

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“