Kanalinformation verloren von Wettersensor

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
HeinzW
Beiträge: 8
Registriert: 03.10.2020, 12:01
System: CCU
Wohnort: Zürcher Oberland (CH)

Kanalinformation verloren von Wettersensor

Beitrag von HeinzW » 04.04.2021, 12:25

Hallo zusammen

Ich habe schon sehr viel gelernt durch Eure Angaben und Tipps. Nun komme ich aber auch nach durchkämmen diverser Artikel nicht mehr weiter und benötige Eure Hilfe

Ich habe kürzlich den Kanal 1 von meinem Wettersensor (HmIP-SWO-PL) umbenannt. Nun bekomme ich keine Temperaturen bei Abfrage von ACTUAL_TEMPERATURE auf meiner NEO Seite angezeigt. Anstelle der Temparaturwerte wird «NaN» dargestellt. Alle anderen Wetter-Anzeigen sind korrekt.
Im Errorlog der CCU findet sich jeweils bei / Refresh Aufruf über NEO ein neuer Eintrag:
ERROR: ScriptRuntimeError:

Code: Alles auswählen

var o;
string states="";
states = states # "0=";
o=dom.GetObject("HmIP-RF.00181A499045FA:1.ACTUAL_TEMPERATURE");
if (o!=null) 
    {states=states#o.Value();}
else {states=states#"?";} 
[ExecError():iseESPexec.cpp:12798]

«o» ist hier «NULL». Wenn ich dasselbe auf der CCU direkt für einen anderen Datenpunkt z.B. HUMIDITY mache, bekomme ich die korrekte Antwort. Siehe Beispiel:

Code: Alles auswählen

var neo_temp =dom.GetObject("HmIP-RF.00181A499045FA:1.ACTUAL_TEMPERATURE");
var neo_hum =dom.GetObject("HmIP-RF.00181A499045FA:1.HUMIDITY");
WriteLine ("Temp NEO:" # neo_temp);
WriteLine ("Hum NEO: " # neo_hum # "\t | Value: "# neo_hum.Value() );
Response:
Temp NEO:null
Hum NEO: HmIP-RF.00181A499045FA:1.HUMIDITY | Value: 38
Ein kompletter Scan des Channels liefert für Actual Temp keinen Channelname:

Code: Alles auswählen

	string KanalName = "HmIP-SWO-PL 00181A499045FA:1";
	var AktorKanal = dom.GetObject(KanalName);
	string id; 
	foreach(id, AktorKanal.DPs()) {
	   var dp = dom.GetObject(id);
	   WriteLine(id # ": " # dp.Name() # ": " # dp.Value());
	}
Response:
25794: ACTUAL_TEMPERATURE: 9.600000 ! dp.Name() ausschliesslich für diesen Datenpunkt leer…
25795: HmIP-RF.00181A499045FA:1.ACTUAL_TEMPERATURE_STATUS: 0
25796: HmIP-RF.00181A499045FA:1.HUMIDITY: 39
25797: HmIP-RF.00181A499045FA:1.HUMIDITY_STATUS: 0
...

Woher kommt das? Und wie kann ich dieses Problem auf möglichst einfache Art beheben (ausser den Wert per Script in eine Variable zu schreiben und diesen von dort zu übernehmen)
PS: Das einzige, was ich noch nicht gemacht habe, ist ein ab- / neu anlernen des Wettersensors. Weil: Sollte dies nötig werden, müsste ich dann alle ID’s für die Historian Auswertungen neu einrichtet werden? (Hoffentlich nein…)

Danke im Voraus für Eure Hilfe

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Kanalinformation verloren von Wettersensor

Beitrag von alchy » 04.04.2021, 22:21

HeinzW hat geschrieben:
04.04.2021, 12:25

25794: ACTUAL_TEMPERATURE: 9.600000 ! dp.Name() ausschliesslich für diesen Datenpunkt leer…
25795: HmIP-RF.00181A499045FA:1.ACTUAL_TEMPERATURE_STATUS: 0
25796: HmIP-RF.00181A499045FA:1.HUMIDITY: 39
25797: HmIP-RF.00181A499045FA:1.HUMIDITY_STATUS: 0
Lt deiner Ausgabe ist der Name des Datenpunktes nicht leer sondern ACTUAL_TEMPERATURE wenn du das nicht rein editiert hast.

Ändern solltest du das einfach per Script können, in dem du die Methode .Name() schreibend benutzt.

Code: Alles auswählen

object dp = dom.GetObject(25794);
WriteLine(dp.ID() # ": " # dp.Name() # ": " # dp.Value());
dp.Name("HmIP-RF.00181A499045FA:1.ACTUAL_TEMPERATURE");
WriteLine(dp.ID() # ": " # dp.Name() # ": " # dp.Value());
Aber immer schön vorsichtig damit umgehen. :wink:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

HeinzW
Beiträge: 8
Registriert: 03.10.2020, 12:01
System: CCU
Wohnort: Zürcher Oberland (CH)

Re: Kanalinformation verloren von Wettersensor

Beitrag von HeinzW » 05.04.2021, 09:45

Hallo Alchy
Hat gewirkt. Der Kanal heisst wieder wie er soll und nach dem Löschen, neu Importieren des Gerätes in NEO werden keine Fehler mehr geworfen und die Temperatur wird auch wieder korrekt angezeigt.

Manchmal frage ich mich, woher Du (wenn ich die vielen Antworten und Inputs von Dir sehe) die Zeit nimmst, jeweils so schnell zu helfen und das Wissen her hast, Lösungen verständlich zu beschreiben.
Oder umgekehrt; Wie mühsam ich Befehl um Befehl an einander reihe und danach mit debuggen mich beschäftigen darf, bis ich glaube die Logik dessen was ich sehe zu begreifen. Meine Zeit wäre wohl bei anderen (Haus-) Arbeiten effektiver eingesetzt. Würde es nicht so viel Spass bereiten, müsste ich mich vermutlich nach einem anderen Hobby umschauen…

Vielen Dank & schöne Ostern
Heinz

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Kanalinformation verloren von Wettersensor

Beitrag von alchy » 05.04.2021, 12:43

HeinzW hat geschrieben:
05.04.2021, 09:45
Manchmal frage ich mich
Das ist relativ einfach, ich schlafe aus den verschiedensten Gründen sehr wenig. :wink:
Mittlerweile bin ich im Forum aber nicht mehr so aktiv, sondern beantworte Userfragen nur noch selten.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic allgemein“