kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Antworten
b.eng@t-online.de
Beiträge: 6
Registriert: 08.10.2018, 20:29

kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von b.eng@t-online.de » 08.10.2018, 20:36

Liebes HomeMatic Team,
ich habe nun schon lange erfolglos gegoogelt aber nichts brauchbares gefunden.
Daher bitte ich euch um Hilfestellung.
Ich habe einen kapazitiven Füllstandsmesser HM-Sen-Wa-Od.
In der Geräte-Ansicht zeigt er mir den Füllstand im m³ und in Prozent.
Nur leider schaffe ich es nicht, mir die Messwerte in eine Variable ausgeben zu lassen bzw. in eine Variable zu schreiben. Weiß jemand wie das geht?
Ich schaffe es auch nicht mit einem TCL-Script mir die Messwerte als Mail zu senden.
Anbei mein Script:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {
var v1 = dom.GetObject("BidCos-RF.OEQ2262661:1.Regenwasser-Tank").Value().ToString(1);
} ]
set v1 $values(v1)
MailText:

Code: Alles auswählen

Füllstand $v1
Das Mail zeigt im Text immer an "Füllstand Null"
Zuletzt geändert von alchy am 08.10.2018, 20:44, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

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

Re: kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von alchy » 08.10.2018, 21:03

Bei deinem Script sollte es sich um das Script aus dem TCL Reiter des Mailaddons handeln?

Du fragst den Datenpunkt mit Namen: BidCos-RF.OEQ2262661:1.Regenwasser-Tank
ab. Dieser Name wird mit sehr hoher Wahrscheinlichkeit nicht stimmen.

>> HM Script Abfrage von Datenpunkten (RF,IP...) <<

Also eher so:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {
var v1 = dom.GetObject("BidCos-RF.OEQ2262661:1.FILLING_LEVEL").Value();
} ]
set v1 $values(v1)
auch z.B. verwendbar wäre:

Code: Alles auswählen

var v1 = datapoints.Get("BidCos-RF.OEQ2262661:1.FILLING_LEVEL").Value();
oder, wenn es sich bei Regenwasser-Tank um den Kanalnamen des Kanal 1 handeln würde dann

Code: Alles auswählen

var v1 = channels.Get("Regenwasser-Tank").DPByHssDP("FILLING_LEVEL").Value();
aber eben nicht so, wie du es zusammengestückelt hast.

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.

b.eng@t-online.de
Beiträge: 6
Registriert: 08.10.2018, 20:29

Re: kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von b.eng@t-online.de » 08.10.2018, 23:44

Ahhh, suuper, vielen Dank.
Das funktioniert schon mal.

Kannst du mir auch noch einen Tip geben,
wie ich den Prozent-Wert in einem HM-Programm in m3 umrechnen und in eine Variable schreiben kann?

Gruß BE

b.eng@t-online.de
Beiträge: 6
Registriert: 08.10.2018, 20:29

Re: kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von b.eng@t-online.de » 09.10.2018, 21:24

Hallo bin jetzt einen Schritt weiter...aber...
Wie kann ich den Wert in der Variablen mit 0,075 multiplizieren?

Code: Alles auswählen

var srcobj = dom.GetObject("BidCos-RF.OEQ2262661:1.FILLING_LEVEL");
var dstobj = dom.GetObject("Zisterne");
var srcval = srcobj.Value();
if (srcval != dstobj.Value()) {
  dstobj.State(srcval);
}
Zuletzt geändert von alchy am 09.10.2018, 21:51, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

b.eng@t-online.de
Beiträge: 6
Registriert: 08.10.2018, 20:29

Re: kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von b.eng@t-online.de » 09.10.2018, 21:25

vielleicht gibt es auch noch eine Variante um den Code zu kürzen und verständlicher zu machen...

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

Re: kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von alchy » 09.10.2018, 21:50

b.eng@t-online.de hat geschrieben:
09.10.2018, 21:24
Wie kann ich den Wert in der Variablen mit 0,075 multiplizieren?
so wie mit dem Taschenrechner auch.
Die Stelle dazu kannst du dir selber aussuchen.
Allerdings ist dein if dann ziemlich sinnlos, weil der Wert von srcobj immer ungleich dem Wert von dstobj sein sollte.

Code: Alles auswählen

object srcobj = dom.GetObject("BidCos-RF.OEQ2262661:1.FILLING_LEVEL");
object dstobj = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zisterne");
real srcval = 0.075*srcobj.Value();
dstobj.State(srcval);
Natürlich kann man das Ganze dann auch zusammenschreiben

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zisterne").State(0.075*datapoints.Get("BidCos-RF.OEQ2262661:1.FILLING_LEVEL").Value());
aber das macht es nicht übersichtlicher und der 200 VariablenBug ist ja glücklicherweise nicht mehr vorhanden.

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.

b.eng@t-online.de
Beiträge: 6
Registriert: 08.10.2018, 20:29

Re: kapazitiven Füllstandsmesser HM-Sen-Wa-Od Messwerte in Variable etc.

Beitrag von b.eng@t-online.de » 10.10.2018, 21:12

funktioniert
und nun noch mal danke.
jetzt komme ich mit meinen Aufgaben endlich weiter.
ich bin begeistert
Gruß BE

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“