Seite 1 von 1

Tankuhr (g)

Verfasst: 28.09.2016, 19:07
von PeterAC
Hallo,

gibt es diese Funktion noch? Bekomme es mit Webmatic 2.2.3 nicht zum laufen.

VG,
Peter

Re: Tankuhr (g)

Verfasst: 15.10.2016, 12:34
von PeterAC
Wäre für einen Hinweis wirklic dankbar. Benutzt sonst niemand die Funktion?

VG,
Peter

Re: Tankuhr (g)

Verfasst: 15.12.2016, 11:33
von ldittmar
Hi Peter,

die Funktion sollte funktionieren, ich schaue es mir aber nochmal genauer an und fixe es dann ggf. mit der nächsten Version.

Grüße,
ldittmar

Re: Tankuhr (g)

Verfasst: 30.12.2016, 14:54
von schneider.obw
Hallo Peter.
Die Funktion Tankuhr zur graphischen Anzeige von Systemvariablen funktioniert in Webmatic.
Hierzu in der Beschreibung der Systemvariablen das bekannte (g) in Klammern hinter den Namen setzen:

Wetter_Temperatur (g,s=-15/#0000A4,e=35/#F63A21)


Im obigen Beispiel habe ich zusätzlich noch Werte für Start- und Endfarbe eingegeben.
Auch das funktioniert.

Kleiner Wermutstropfen - zumindest bei mir noch in verschiedenen Browsern und Systemen:
Zur Anzeige der Grafiken muss man beim ersten Aufruf von WM bei Seiten mit Grafiken (Tankuhr oder Heizungsgrafik) den Menübutton links zunächst zweimal andrücken; erst dann erscheint die Grafik. Hat wohl etwas mit den Ladezeiten/Ladeablauf oder evtl. auch mit einem Timing-Problem zu tun. Wennz dann einmal geladen war, ist alles ok (bis zum nächsten WM-Start).

Gruß
schneider.obw

Re: Tankuhr (g)

Verfasst: 17.02.2017, 23:47
von PeterAC
Leider nicht bei mir.

Habe den String in die Beschreibung kopiert, Variable _vVar, Zahl 0-65000 und die Variable auf 20 gesetzt.

Mit "Nur Grafik" oder normal bleibt es stets bei der normalen Anzeige, d.h. entweder das Icon, oder der Zahlenwert.

Auch "Bedienbar" oder nicht macht keinen Unterschied. Ich kann auch so oft ich will den Menü-Button drücken.

Browser ist Firefox.

Re: Tankuhr (g)

Verfasst: 18.02.2017, 11:20
von PeterAC
Oh, hab's jetzt kapiert: Die Tankuhr-Darstellung wird als reine Systemvariablen unter Systemvariablen leider nicht angezeigt, nur unter Favoriten. Um sie unter anderen Kategorien anzeigen zu können muss man sie wohl einem Kanal zuordnen.

auf jeden Fall vielen Dank für die Hinweise,
Peter

Re: Tankuhr (g)

Verfasst: 18.02.2017, 11:30
von Gluehwurm
Der Umgang mit solchen Sachen ist im WebUI-Handbuch beschrieben.

Gruß
Bruno

Re: Tankuhr (g)

Verfasst: 18.02.2017, 12:58
von PeterAC
Hallo Bruno,

das versteh ich nicht. WebMatic ist doch nicht im WebUI-Handbuch beschrieben?

Oder geht es um das Zuordnen? Das kenn ich natürlich.

VG,
Peter

Re: Tankuhr (g)

Verfasst: 19.02.2017, 20:04
von PeterAC
So, jetzt läuft es:
TemperaturAnzeige.PNG
Hier noch ein kurzes Programm, mit dem die Temperaturwerte der Sensoren automatisch in die zugehörigen SysVars übertragen werden. Dabei hilft eine Konvention bei der Namensvergabe der Geräte. Bspw. bei einem Heizkörperthemostat:

"EG WZ Heizkörpertermostat" (=ErdGeschoss WohnZimmer ... )

die SysVar dafür für die Anzeige der Tankuhr heißt:

"EG WZ RT" (für ErdGeschoss WohnZimmer RaumTemperatur), dem Kanal nicht zugeordnet. Jedes Gerät benötigt eine entsprechende SysVar.
TemperaturAnzeige1.PNG
Es wird nur ein Programm benötigt, dass alle vorgesehenen Sensoren verarbeitet. Das triggert auf Aktualisierung eines der 14 Raumthermostate ( ... bei Temperatur >= -10°C Bei Aktualisierung auslösen). Allerdings kann man so nur 1 Gerät je Raum eindeutig zuordnen, was hier ausreicht.

Das Script muss feststellen, welcher Raumthermostat aktuell das Programm ausgelöst hat, den ersten Teil seines Namens bestimmen und daraus den Namen der zugehörigen SysVar bilden. Dafür braucht man wenige Zeilen:

Code: Alles auswählen

! Ermittelt aufrufenden Kanal und schreibt Wert in reservierte Sysvar !

object oDP         = dom.GetObject($src$);
real Wert 		   = oDP.Value();

! Ermittelt Device-Namen
string Device_Name = (dom.GetObject((dom.GetObject(oDP.Channel())).Device())).Name();

! Bildet Namen der SysVar aus ersten beiden Gruppen des Device-Namens 
string SysVarName =   Device_Name.StrValueByIndex(" ",0) # " " 
                    # Device_Name.StrValueByIndex(" ",1) # " RT";

dom.GetObject(SysVarName).State(Wert);
VG,
Peter