TCL-Script läuft nicht mehr

diverse Zusatzsoftware

Moderator: Co-Administratoren

Antworten
Theo2016
Beiträge: 2
Registriert: 08.01.2025, 18:36
System: CCU
Hat sich bedankt: 1 Mal

TCL-Script läuft nicht mehr

Beitrag von Theo2016 » 08.01.2025, 18:52

Hallo,
ich habe lange Zeit mit nachfolgendem TLC-Script mir tägliche Messwerte meiner Sensoren per Mail schicken lassen. Dies hat immer super funktioniert. Seit Herbst 2024 bekomme ich immer nur noch den Wert von v1 angezeigt. Bei allen Anderen Variablen steht nur null.

Hier der Mail Inhalt:

Code: Alles auswählen

****************************************************************
Aquarium Wassertemp.:   $v1 Grad
+++++++++++++++++++++++++
Wetterstation:                                                                                                                    
Temperatur:              $v10 Grad               
Luftfeuchtigkeit:        $v11                    
Windgeschwindigkeit:          $v16 km/h
aktuell Regen (truth/false):       $v14
Regenmenge gesamt:               $v15 mm
Sonnenscheindauer:           $v13 min
++++++++++++++++++++++++++
Trockenzeit:               $v4    Stunde(n)             Beregnung (1/0):          $v5
++++++++++++++++++++++++++
Stromverbrauch:
Leistung: EG $v7 W // Garten: $v9 W
******************************************************************
Hier das TCL-Script:
*******************************************************************

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]

load tclrega.so

# Mit tclrega.so wird der Zugriff auf den HomeMatic Script Interpreter ermöglicht.

array set values [rega_script {
var v1 = dom.GetObject("BidCos-RF.xxxxxxxxxx:x.TEMPERATURE").Value().ToString(1);
var v2 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x1.ACTUAL_TEMPERATURE").Value().ToString(1);
var v3 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x1.HUMIDITY").Value().ToString(1);
var v4 = dom.GetObject("Trockentage").Value().ToString(1);
var v5 = dom.GetObject("Wasser").Value().ToString(1);
var v6 = dom.GetObject("BidCos-RF.xxxxxxxxxx:x.ENERGY_COUNTER").Value().ToString(1);
var v7 = dom.GetObject("BidCos-RF.xxxxxxxxxx:x.POWER").Value().ToString(1);
var v8 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.ENERGY_COUNTER").Value().ToString(1);
var v9 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.POWER").Value().ToString(1);

var v10 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.ACTUAL_TEMPERATURE").Value().ToString(1);
var v11 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.HUMIDITY").Value().ToString(1);
var v12 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.ILLUMINATION").Value().ToString(1);
var v13 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.SUNSHINEDURATION").Value().ToString(1);
var v14 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.RAINING").Value().ToString(1);
var v15 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.RAIN_COUNTER").Value().ToString(1);
var v16 = dom.GetObject("HmIP-RF.xxxxxxxxxx:x.WIND_SPEED").Value().ToString(1);
} ]

# Mittels dieser drei Zeilen werden die Werte (Value) des Geräts ausgelesen und an die
# Variablen (v1/v2) übergeben. Mittels ToString werden in diesem Fall die überflüssigen
# Dezimalstellen der Werte abgeschnitten, damit keine Wert mit fünf Nachkommastellen
# übergeben werden, (ToString(1) = z.B. 10.5°C und ToString(0) = z.B. 70% Luftfeuchte).

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set v4 $values(v4)
set v5 $values(v5)
set v6 $values(v6)
set v7 $values(v7)
set v8 $values(v8)
set v9 $values(v9)

set v10 $values(v10)
set v11 $values(v11)
set v12 $values(v12)
set v13 $values(v13)
set v14 $values(v14)
set v15 $values(v15)
set v16 $values(v16)

# Mittels set wird der übergebene Wert in der Variable (v1/v2) gespeichert
**********************************************************************************************

Vielen Dank für die Unterstützung!
Zuletzt geändert von alchy am 08.01.2025, 20:45, insgesamt 1-mal geändert.
Grund: verschoben und Code in Codetags posten

alchy
Beiträge: 10799
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 70 Mal
Danksagung erhalten: 690 Mal

Re: TCL-Script läuft nicht mehr

Beitrag von alchy » 08.01.2025, 20:34

Dann ist oberhalb von v10 ein Fehler.
Es reicht einer, alles was darunter kommt könnte korrekt sein, dem Interpreter ist es wurscht.

Wenn ich raten müsste, würde ich in

Code: Alles auswählen

var v4 = dom.GetObject("Trockentage").Value().ToString(1);
var v5 = dom.GetObject("Wasser").Value().ToString(1);
anfangen zu prüfen.
Gibt es diese Objekte und sind sie einzigartig?

Drüber kommen Datenpunkte die sich nicht ändern, es sei denn du hast eines der Geräte ausgetauscht?!?.


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.

Theo2016
Beiträge: 2
Registriert: 08.01.2025, 18:36
System: CCU
Hat sich bedankt: 1 Mal

Re: TCL-Script läuft nicht mehr

Beitrag von Theo2016 » 09.01.2025, 22:47

Hallo Alchy,

vielen Dank für deine Hilfe. Du hast mich auf die richtige Spur gebracht und ich habe den Fehler gefunden:
Die Variablen v2 und v3 haben einen Sensor ausgelesen, den ich nicht mehr verwendet habe und der vor einiger Zeit vor mir abgemeldet wurde. Deshalb war v1 der letzte lesbare Wert für die CCU.
Jetzt werden wieder alle Werte angezeigt!

VIELEN DANK!!! :D

alchy
Beiträge: 10799
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 70 Mal
Danksagung erhalten: 690 Mal

Re: TCL-Script läuft nicht mehr

Beitrag von alchy » 10.01.2025, 21:28

Danke für die Rückmeldung, freut mich geholfen zu haben.

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 „Sonstige Addons“