Verzögert eine Variable per Skript ändern / Wie geht das?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

thorkillar
Beiträge: 48
Registriert: 24.01.2017, 16:46

Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von thorkillar » 27.08.2018, 14:47

Hallo,

ich habe das Problem, dass ich mir auf Knopfdruck eine Erinnerung verschiedener Ereignisse ansagen lassen möchte.
Die Variiert täglich und ist von verschiedenen Faktoren abhängig. Mein Problem ist die Begrenzung von max. 10 MP3s auf dem MP3-Gong.

Jetzt hatte ich mir folgendes überlegt,

die Variablen gongcmd1 + gongcmd2 werden zusammengesetzt

z-B.
gongcmd1 = 0.1,1,108000,161,171,178,096
gongcmd2 = 0.1,1,108000,164,151,198,026

Der erste Befehlt wird von mir gestartet.
dom.GetObject("BidCos-RF.NEQ0000000:2.SUBMIT").State( gongcmd1 ); "

wenn der mp3 Gong seine Texte zuende aufgezält hat, soll der nächste befehl gestartet werden

dom.GetObject("BidCos-RF.NEQ0000000:2.SUBMIT").State( gongcmd2 ); "
da ich weiss, wie lang die Texte sind, könnte ich eine Verzögerung errechnen, und den Befehl um xxx Sekunden verzögert starten. Aber wie geht das?


Ziel:
dom.GetObject("BidCos-RF.NEQ0000000:2.SUBMIT").State( gongcmd1 ); "
dom.GetObject("BidCos-RF.NEQ0000000:2.SUBMIT").State( gongcmd2 ); " verzögert um xxx Sekunden

Könnt Ihr mir da helfen?

DANKE
Vielen DANK
Thorkillar

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von manfredh » 27.08.2018, 15:26

Ich verwende keine Scripts, deshalb komme ich vielleicht auf diese pragmatische Lösung:

...Dann
Script [Text1] sofort
Script [Text2] verzögert um...

Also eine Aufteilung auf zwei Scripte.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

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

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von alchy » 28.08.2018, 20:19

Hier bist du wrklich nicht darauf angewiesen, direkt in einem Script eine Variable verzögert zu schalten.

Wenn irgendwas

Dann Script

Code: Alles auswählen

string gongcmd = "0.1,1,108000,161,171,178,096";
dom.GetObject(ID_DATAPOINTS).Get("BidCos-RF.NEQ0000000:2.SUBMIT").State(gongcmd);  
und
verzögert um X
Script

Code: Alles auswählen

string gongcmd = "0.1,1,108000,164,151,198,026";
dom.GetObject(ID_DATAPOINTS).Get("BidCos-RF.NEQ0000000:2.SUBMIT").State(gongcmd);


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.

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von dtp » 29.08.2018, 07:47

Wobei es da eine Lösung vom User @Black gibt, die ich selbst aber noch nicht ausprobiert habe.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von Bratmaxe » 29.08.2018, 15:19

Blockiert man sich mit einem "Sleep"-Befehl nicht die CCU für den Zeitraum?
Gruß Carsten

Benutzeravatar
Black
Beiträge: 5470
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von Black » 29.08.2018, 17:23

In dem TCL Script nicht... das wird als separater Prozess gestartet.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

thorkillar
Beiträge: 48
Registriert: 24.01.2017, 16:46

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von thorkillar » 29.08.2018, 18:09

alchy hat geschrieben:
28.08.2018, 20:19
Hier bist du wrklich nicht darauf angewiesen, direkt in einem Script eine Variable verzögert zu schalten.
Hey,
Und vielen Dank für die hilfe.
Kannst du mir bei deinem Vorschlag sagen, wie ich x ins klicki bunti bekomme?

Der Wert x wird aus der länge der einzelnen MP3s errechnet.
164 ist 2 sek lang.
171 ist 8 Sekunden lang usw...


dann errechne ich 2+8+... = zB 28.
also soll das zweite Skript 28 Sekunden nach dem ersten gestartet werden.

Ich habe z.B. In die morgendliche Routine die Temperatur auf dem Balkon mit eingebaut. Alleine die verbraucht 4-5 MP3s .

Bisher habe ich es so gelöst das ganze in mehrere Teile aufzuteilen und dann per Tastendruck das zweite Skript zu starten.

Vor Weihnachten wollte ich dann noch einen Countdown bis ... einbauen .

Eigentlich alles nur Spielerei und nichts lebenswichtige, aber ich will es vernünftig haben.;)

Der Wert der Pause wird per Skript ermittelt und liegt bei mir tatsächlich in der Variable X ;)

Also wie sage ich dem zweiten Skript, starte nach (zb) 28 Sekunden.

Morgen sind es dann zB 45 Sekunden

Danke
Zuletzt geändert von alchy am 29.08.2018, 21:00, insgesamt 1-mal geändert.
Grund: sinnloses Fullquote entfernt
Vielen DANK
Thorkillar

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

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von alchy » 29.08.2018, 21:03

thorkillar hat geschrieben:
29.08.2018, 18:09
Also wie sage ich dem zweiten Skript, starte nach (zb) 28 Sekunden.

Mal versucht zusammenzuklicken?
Script verzögert um.jpg
Ich habe so ein Teil nicht und würde es mir auch nicht kaufen. Eine TTS Ausgabe ist doch weitaus flexibler. :mrgreen:

Alternativ lauffähig wäre ein Script, welches sich die Verzögerung aus einer Systemvariable ausliest und den ausgelesenen Wert im Script als Verzögerung zum Setzen einer weiteren Logikvariablen nimmt. Hab ich erst vor kurzen für einen User geschrieben.




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.

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von dtp » 30.08.2018, 08:50

thorkillar hat geschrieben:
29.08.2018, 18:09
Eigentlich alles nur Spielerei und nichts lebenswichtige, aber ich will es vernünftig haben.;)
Ganz ehrlich? Dann würde ich das lieber über den ioBroker umsetzen. Da bist du um Längen flexibler und kannst die Sprachausgabe über die verschiedenste Systeme vom Tablet bis zum Amazon Echo realisieren. Das Ganze basiert in der Regel auf TTS.

Im ioBroker gibt es dazu unterschiedliche Adapter, wie alexa2, sayIt oder command2text, um nur einige zu nennen. Kleiner Vorteil des ioBroker am Rande: er kostet nüscht. 8)

Bis dann,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Verzögert eine Variable per Skript ändern / Wie geht das?

Beitrag von manfredh » 30.08.2018, 09:03

Ich kann hier Thorsten nur recht geben.

Ich hatte so einen unsäglichen MP3-Gong (das Selbstbau-Teil) und mich nur darüber geärgert.

Seit geraumer Zeit kommen meine Ansagen aus den Google Home Assistants (ioBroker Sayit Adapter) und alternativ aus dem Tablet (ioBroker PAW Adapter).

Im Vergleich zum HM-Teil ist es schon eine Offenbarung, dass man keine MP3s irgendwie zu einer sinnvollen Aussage zusammenbauen muss, sondern einfach einen beliebigen Text eingeben kann, der nachgeplappert wird.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Antworten

Zurück zu „HomeMatic allgemein“