Die Logik von WebUI - Programmen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Die Logik von WebUI - Programmen

Beitrag von anli » 22.06.2012, 23:44

Herbert_Testmann hat geschrieben:Könnte es sein, dass das selbe bei einem Aufruf des Programms aus einem anderen Script erfolgt?
Das ist genau so. ProgramExecute ist wie das manuelle Ausführen eines Programms - der dann-Zweig wird unabhängig von der Bedingung immer ausgeführt.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

matheversum
Beiträge: 287
Registriert: 27.04.2009, 13:46

Re: Die Logik von WebUI - Programmen

Beitrag von matheversum » 23.06.2012, 10:32

Ich habs nicht probiert, und Deine jetzige Lösung klappt ja, aber wenn Du in dem zweiten Programm sowieso einen Script hast, dann solltest du darin prüfen, ob die Tür noch offen ist und nur dann die Mail schicken.

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von grissli1 » 23.06.2012, 19:29

Hi,
matheversum hat geschrieben:Ich habs nicht probiert, und Deine jetzige Lösung klappt ja, aber wenn Du in dem zweiten Programm sowieso einen Script hast, dann solltest du darin prüfen, ob die Tür noch offen ist und nur dann die Mail schicken.
das wäre auch mir die liebste Lösung. Leider kann ich nicht scripten und die Anleitungen von Homematic dazu (Anleitungen zum Script) sind zu allgemein (ohne Befehle und deren Auswirkung im Script).
Kannst du mir eventuell sagen, wo ich so was online nachlesen bzw. mich einlernen kann oder auch welches Buch man dafür kaufen kann (für Homematic Script)?

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

matheversum
Beiträge: 287
Registriert: 27.04.2009, 13:46

Re: Die Logik von WebUI - Programmen

Beitrag von matheversum » 24.06.2012, 12:21

Buch gibts wohl nicht.
Hast Du Dir die Anleitung und die Beispiele http://www.homematic.com/index.php?id=156 schon mal angeschaut?
Leider ist homematic-script nicht gerade eine gute Sprache, also nicht sehr fehlertolerant oder sondern eher fehlerignorant, sprich, wenn man sich vertut, passier gar nix, sondern das script macht einfach nix.
Debuggen ist auch nicht außer wie vor 30 Jahren mit testausgaben.
Die Methode ist von klein nach groß im Testfenster (unter script testen) vorgehen, immer wieder Testausgaben der Variablen in einem zweiten Terminal ein tail-f auf das logfile 'tail -f /var/log/messages'.
Wenns dann läuft, die Testausgaben auskommentieren.
Also lerning by doing und in den hier geposteten scripts spicken, da aber jeder seinen Stil hat, alles etwas kritisch betrachten (was natürlich für einen Anfänger schwer ist)

Wichtigste Regel im Script: Längere arithmetische und logische Ausdrücker immer Klammern, es gelten nicht die üblichen vorrangregeln!

Ansonsten funktioniert das etwas so:

Code: Alles auswählen

object tfk = dom.GetObject("BidCos-RF.xEQ0999999:1.STATE");

if ( tfk.Value() ) {
  hier das bisherige Script
}
Für den Test schreibst du etwa

Code: Alles auswählen

object tfk = dom.GetObject("BidCos-RF.xEQ0999999:1.STATE");
WriteLine("TFK:"#tfk.Value());
if ( tfk.Value() ) {
  WriteLine("EMail schicken.");
}
Das Ergebnis sollte dann bei geschlossen etwa so aussehen
test.png
test.png (23.84 KiB) 5713 mal betrachtet

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von grissli1 » 24.06.2012, 13:37

Hi,

ja, die Links hatte ich mir schon durchgelesen. Ist aber wie gesagt sehr allgemein gehalten.
Schön wäre, wenn alle möglichen "Befehle" und deren Auswirkung angegeben wären.

Aber danke schon mal für die kleine Einführung. Also werde ich mich einfach mal spielen und in den diversen Scrips nachschauen.
Werde ich schon auch noch schaffen ;-).

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von grissli1 » 10.07.2012, 14:28

Hi,

habe das letzte PDF-File nicht heruntergeladen (Datenpunkte). Jetzt gibt es die ganzen PDF's nicht mehr.
Über goo... auch nichts gefunden.

Hat jemand das letzte PDF (Datenpunkte) und kann es mir mailen???

Danke und viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Die Logik von WebUI - Programmen

Beitrag von anli » 11.07.2012, 08:36

Hallo.

SChreib' einfach mal an eQ3/ELV, dass die merken, wie grottig die neue Seite momentan ist. Die Toolchains gibt es auch nicht mehr... Wenn's nicht hilft, meld Dich noch einmal.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

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: Die Logik von WebUI - Programmen

Beitrag von manfredh » 05.11.2012, 08:16

Manches begreift man ja leider erst, wenn man es mehrfach mit anderen Worten erklärt bekommt und dann vielleicht noch selbst ausprobiert.

Deshalb bitte ich um Bestätigung der folgenden Formulierung:

Die Bedingungsoptionen "Bei Auslösung" und "Bei Änderung" bedeuten einzig und allein, dass dann das gesamte Programm angestossen wird.
Findet das Program dann bei der Abarbeitung eine andere Bedingung, die gerade erfüllt ist, aber (bei Option "Bei Änderung" ) gerade keine Änderung erfährt, wird trotzdem darauf reagiert.

Anders ausgedrückt:
Stößt Bedingung 1 die Abarbeitung eines Programmes erst einmal an, ist das Verhalten des Gesamtprogrammes so, als ob in den anderen Bedingungen "nur prüfen" steht.
???

Ursache dieser Erkenntnis:
Ich habe eine Rolladensteuerung, die den Rolladen über eine Systemvariable Tag/Nacht fährt.
Wenn Systemvariable Tag/Nacht auf Tag (bei Änderung)
Dann Rolladen auf 100%
Sonst Wenn Systemvariable Tag/Nacht auf Nacht (bei Änderung)
Dann Rolladen auf 100%

Jetzt wollte ich den Rolladen auch per Taste an einem Wired Modul fahren, also auch mal tagsüber runter. Habe also die Taste verODERt in die Bedingung eingebaut. Ergebnis: der Rollo fährt runter, so lange die Taste gedrückt wird und fährt beim Loslassen wieder hoch - obwohl die Systemvariable sich nicht ändert (bei Änderung).
Die Taste in ein eigenes Programm - schon funktioniert's.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von DrTob » 05.11.2012, 09:24

Richtig. Nur prüfen prüft nur, auslösen bei Änderungen löst das Programm bei Änderung aus, ansonsten verhält es sich wie "nur prüfen"

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Herbert_Testmann » 05.11.2012, 11:16

hallo

ich habe nur schnell die ersten 3 Absätze gelesen, nicht das Beispiel. Du hast das sehr gut verstanden.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“