HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Moderator: Co-Administratoren
-
- Beiträge: 25
- Registriert: 29.07.2015, 13:01
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
es funktioniert!!!
das "string" in der 2.Zeile gelöscht und - hurra - es funktioniert!!!
Danke für Eure Hilfe und bis bald!!!
das "string" in der 2.Zeile gelöscht und - hurra - es funktioniert!!!
Danke für Eure Hilfe und bis bald!!!
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Hi,
habe das hier gefunden, nachdem ich auf der Suche nach dem Ansteuern des HM-Dis-WM55 war.
Erst mal lieben Dank. Das hat echt sehr geholfen.
Da ich es nicht besonders gut finde dass man das Skript bei Änderungen immer doppelt editieren muss, habe ich folgenden Vorschlag:
Den oberen, einig unterschiedlichen Teil, durch folgenden Teil ersetzen:
Da ja nur der Zähler anders ist in den beiden Skripten habe ich das Skript wie oben abgeändert. Ich prüfe quasi ob das Ereignis vom oberen oder dem unteren Button kommt und in- bzw dekrementiere dann in dem If Block den Seitenzähler.
Es wird also nur ein Programm benötigt das bei Display:1 ODER Display:2 auslöst. Innen wird dann entschieden.
Wie gesagt. Nur eine kleine Verbesserung da ich es nicht schaffe 2 Dateien zu pflegen
Gruß,
Florian
habe das hier gefunden, nachdem ich auf der Suche nach dem Ansteuern des HM-Dis-WM55 war.
Erst mal lieben Dank. Das hat echt sehr geholfen.
Da ich es nicht besonders gut finde dass man das Skript bei Änderungen immer doppelt editieren muss, habe ich folgenden Vorschlag:
Den oberen, einig unterschiedlichen Teil, durch folgenden Teil ersetzen:
Code: Alles auswählen
! #### wie viele Seiten auf dem Display sollen durchlaufen werden? #############
integer seitenzahl = 4;
! ##############################################################################
! aktuell angezeige Seite aus der CCU holen
integer obj = dom.GetObject("DisplaySeite");
integer aktuelleSeite = obj.Variable();
! Auslöserbutton holen
! taster = 2 --> oberer taster, taster = 1 --> unterer taster
string sender = dom.GetObject("$src$").Name();
integer taster = sender.StrValueByIndex(":",1).StrValueByIndex(".",0).ToInteger();
! abhängig von aktuelleSeite und Auslöser die Displayseite anpassen
if (aktuelleSeite == 0){
aktuelleSeite = 1; ! Startbedingung, unabhängig vom Button
}
else{ ! Wenn ein Button gedrückt wird während das Dispay an ist
if (taster == 2){ ! oberer Button (hier: nächste Seite)
aktuelleSeite = 1 + aktuelleSeite;
}
else { ! unterer Button (hier: vorherige Seite)
aktuelleSeite = -1 + aktuelleSeite;
}
if (aktuelleSeite > seitenzahl){
aktuelleSeite = 1;
}
if (aktuelleSeite < 1){
aktuelleSeite = seitenzahl;
}
}
obj.Variable(aktuelleSeite); ! in CCU sichern
! ###################### Seite 1 ######################
if (aktuelleSeite == 1){
seite1 = "seite1";
! ...
}
Es wird also nur ein Programm benötigt das bei Display:1 ODER Display:2 auslöst. Innen wird dann entschieden.
Wie gesagt. Nur eine kleine Verbesserung da ich es nicht schaffe 2 Dateien zu pflegen
Gruß,
Florian
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Hallo Florian,
finde ich eine gute Idee, nur krieg ich es nicht ans laufen, kannst Du bitte das komplette Script posten und dazuschreiben welche Systemvariablen mal anlegen muss?
Danke
hwilligm
finde ich eine gute Idee, nur krieg ich es nicht ans laufen, kannst Du bitte das komplette Script posten und dazuschreiben welche Systemvariablen mal anlegen muss?
Danke
hwilligm
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Braucht man doch nicht abzufragen, denn ein kurzer und ein langer Tastendruck starten unterschiedliche Programme. Es sind separate Trigger für unterschiedliche Programme. Wenn Du nicht beide Tastendrücke als Trigger für das gleiche Programm/Script eingerichtet hast, brauchst Du die Abfrage also nicht.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Dann wirst Du mit Klimmzügen leben müssen. Die eQ-3-Script-Doku Teil 4 gibt dieses Beispiel :
Gruß Xel66
Code: Alles auswählen
var myChannel = dom.GetObject("myChannel");
var dp = myChannel.DPByHssDP("PRESS_SHORT");
dp.State(true);
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Dazu kannst Du den Timestamp des PRESS_SHORT mit dem des PRESS_LONG vergleichen.deltaac hat geschrieben:Ich würde aber gerne das gleiche Programm nutzen und den Druck intern verarbeiten...
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Hallo zusammen,
inzwischen habe ich auch so ein nettes Display und bin dank Eurer Hilfe für meine bescheidenden Kenntnisse einigermassen gut zurecht bekommen. Aber zwei Fragen hätte ich denn dann doch noch dazu.
Das Sript läuft soweit bei mir und ich habe es entsprechend angepasst. Alle hier vorhandenen Beispiele sind jedoch mit einer ich nenne es mal >else-Funktion< gekoppelt, um textlich oder farblich unterschiedliches in Verbindung einer Variablen bzw Operanden darzustellen. Das ist aber nicht immer notwendig. So habe ich eine Übersicht einiger Wetterdaten auf eine dieser Seiten gelegt. Mir würde es aber reichen, dies ohne das alles, sondern nur der Wert einer Systemvariablen in der CCU.
Am Beispiel der Wetterseite, welche auszugsweise wie folgt aussieht
darf ich die If-Abfrage nicht einfach herausnehmen, auch nicht in Verbindung mit der Verzweigung nach <else> hin nicht. Danach läuft das Script nicht mehr und es werden keine Daten mehr übertragen.
Wie bitte muss es den aussehen um wie in dem Falle den Wert ("W_Windgeschwindigkeit") abzufragen und an die Textzeile zu übergeben?
Und wo ich schon gerade mal tipper, wie sieht es mit der Syntax für Inhalte einer Systemvariablen vom Typ Logikwert und Zeichenkette aus?
Danke vorab!
Grüße
Arist
inzwischen habe ich auch so ein nettes Display und bin dank Eurer Hilfe für meine bescheidenden Kenntnisse einigermassen gut zurecht bekommen. Aber zwei Fragen hätte ich denn dann doch noch dazu.
Das Sript läuft soweit bei mir und ich habe es entsprechend angepasst. Alle hier vorhandenen Beispiele sind jedoch mit einer ich nenne es mal >else-Funktion< gekoppelt, um textlich oder farblich unterschiedliches in Verbindung einer Variablen bzw Operanden darzustellen. Das ist aber nicht immer notwendig. So habe ich eine Übersicht einiger Wetterdaten auf eine dieser Seiten gelegt. Mir würde es aber reichen, dies ohne das alles, sondern nur der Wert einer Systemvariablen in der CCU.
Am Beispiel der Wetterseite, welche auszugsweise wie folgt aussieht
Code: Alles auswählen
! 4.Zeile Wetter/ Windstärke
var channel=dom.GetObject("W_Windgeschwindigkeit");
var win = channel.Value();
if (win < 40.0)
{ win = win.ToString(0);
zeile4 ="Wind:"#win#"km/h";
color4 = "0x84";
icon4= "";
}
else
{ win = win.ToString(0);
zeile4 ="Wind:"#win#"km/h";
color4 = "0x85";
icon4= "";
}
Wie bitte muss es den aussehen um wie in dem Falle den Wert ("W_Windgeschwindigkeit") abzufragen und an die Textzeile zu übergeben?
Und wo ich schon gerade mal tipper, wie sieht es mit der Syntax für Inhalte einer Systemvariablen vom Typ Logikwert und Zeichenkette aus?
Danke vorab!
Grüße
Arist
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Nabend zusammen,
darf ich noch einmal höflichst nachfragen?
Danke vorab!
Grüße
Arist
darf ich noch einmal höflichst nachfragen?
Danke vorab!
Grüße
Arist
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Abgesehen davon, das deine Passage die Zeile nicht speichert.
Deine weiteren Fragen sollten in der Scriptdoku (siehe Signatur) beantwortet werden.
Grundsätzlich werden mit den ^^ Script alle Systemvariablen eine Ausgabe bringen, nur wirst du diese nicht so wollen.
Daher gehört eigentlich ein generelles Script an die Stelle, was selber entscheidet, was wie angezeigt werden soll.
Alchy
Code: Alles auswählen
! 4.Zeile Wetter/ Windstärke
string oSVName = "W_Windgeschwindigkeit";
string win="NaN";string zeile4;string color4;string icon4;
if (dom.GetObject(ID_SYSTEM_VARIABLES).Get(oSVName)) {
object oSV = dom.GetObject(ID_SYSTEM_VARIABLES).Get(oSVName);
win = oSV.Value().ToString(1);
color4 = "0x84";
icon4= "";
}
zeile4 ="Wind:"#win#" km/h";
Grundsätzlich werden mit den ^^ Script alle Systemvariablen eine Ausgabe bringen, nur wirst du diese nicht so wollen.
Daher gehört eigentlich ein generelles Script an die Stelle, was selber entscheidet, was wie angezeigt werden soll.
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.
Re: HM-DIS-WM55 Seitenweise blättern und Aktionen ausführen
Hallo Alchy,
ich komme nicht umhin zu fragen. Dein Hinweis auf die Scriptdoku ist sicher gut gemeint, aber ich bekomme es nicht hin. Die Dateien sind alle schon vor langem heruntergeladen. Aber so etwas zu lesen, ohne das Verständnis dafür ist schon heftig. Habs auch nicht erlernt, beruflich eine völlig andere Richtung
Es vergehen Stunden über Stunden mit probieren. Andere lesen Scripte, wie unsereins die Bildzeitung (rhetorisch gemeint )
Auch über die Suche ist so etwas nicht mal eben zu finden. Und sofern ich nicht zufällig eine Lösung sehe, die passt und nur modifiziert werden muss, dann bleibt leider nur nachfragen. Einiges an Infos und Tipps habe ich mir schon in Form eines Links oder direkt als Datei abgespeichert um es bei Bedarf einzusetzen.
Programmieren fällt mir leider nicht in den Schoss, andere Dinge dafür schon. Bin auch keine 20 mehr. In meinem Alter muss man erst was vergessen, um etwas neues dazuzulernen
Im Ernst, es fällt wirklich schwer. Und ich denke, ich da nicht alleine. Daher ist dieses Forum mit den Wissenden eine super Hilfe.
Ich lese nahezu jeden Tag neue Beiträge. Und wie kürzlich in einem anderen Fred zu lesen war, wird ja auch ein Feedback gewünscht. Dein kurzes Script läuft natürlich. Vielen Dank dafür
Grüße
Arist
ich komme nicht umhin zu fragen. Dein Hinweis auf die Scriptdoku ist sicher gut gemeint, aber ich bekomme es nicht hin. Die Dateien sind alle schon vor langem heruntergeladen. Aber so etwas zu lesen, ohne das Verständnis dafür ist schon heftig. Habs auch nicht erlernt, beruflich eine völlig andere Richtung
Es vergehen Stunden über Stunden mit probieren. Andere lesen Scripte, wie unsereins die Bildzeitung (rhetorisch gemeint )
Auch über die Suche ist so etwas nicht mal eben zu finden. Und sofern ich nicht zufällig eine Lösung sehe, die passt und nur modifiziert werden muss, dann bleibt leider nur nachfragen. Einiges an Infos und Tipps habe ich mir schon in Form eines Links oder direkt als Datei abgespeichert um es bei Bedarf einzusetzen.
Programmieren fällt mir leider nicht in den Schoss, andere Dinge dafür schon. Bin auch keine 20 mehr. In meinem Alter muss man erst was vergessen, um etwas neues dazuzulernen
Im Ernst, es fällt wirklich schwer. Und ich denke, ich da nicht alleine. Daher ist dieses Forum mit den Wissenden eine super Hilfe.
Ich lese nahezu jeden Tag neue Beiträge. Und wie kürzlich in einem anderen Fred zu lesen war, wird ja auch ein Feedback gewünscht. Dein kurzes Script läuft natürlich. Vielen Dank dafür
Grüße
Arist