Problem mit Sensorabfrage
Moderator: Co-Administratoren
Problem mit Sensorabfrage
Hallo hab ein Problem mit der Abfrage ich hab 4 Sensoren als Füllstandsabfrage und krieg das Programm nicht hin
die Sensoren sind übereinander in der Zisterne montiert und sollen dementsprchend den Füllstand anzeigen.
ich hab ein Programm mit dem Name Anzeige Zisterne gemacht hier sind die verschiedernen Anzeigen hinterlegt.
ich möchte je nachdem welche Sensoren bedeckt sind die Anzeigen visualisieren.
die Sensoren heißen SensorZi1-SensorZi4
die Bitmaps Ansichten sind "leer" "viertel" "halb" "dreiviertel" "voll"
kann mir einer helfen hab ich nen Gedankenfehler im Programm?
Danke
hier das Programm
wenn SensorZi4 geschlossen dann
wenn SensorZi1 und SensorZi2 geschlossen dann
wenn SensorZi1 und SensorZi2 und SensorZi3 geschlossen dann
Wenn SensorZi1 geschlossen dann
AnzeigeZisterne := "viertel"
AnzeigeZisterne := "dreiviertel"
AnzeigeZisterne := "halb"
AnzeigeZisterne := "voll"
Hauswasserwerk einschalten
sonst
AnzeigeZisterne := "leer"
Hauswasserwerk ausschalten
endewenn
endewenn
endewenn
endewenn
die Sensoren sind übereinander in der Zisterne montiert und sollen dementsprchend den Füllstand anzeigen.
ich hab ein Programm mit dem Name Anzeige Zisterne gemacht hier sind die verschiedernen Anzeigen hinterlegt.
ich möchte je nachdem welche Sensoren bedeckt sind die Anzeigen visualisieren.
die Sensoren heißen SensorZi1-SensorZi4
die Bitmaps Ansichten sind "leer" "viertel" "halb" "dreiviertel" "voll"
kann mir einer helfen hab ich nen Gedankenfehler im Programm?
Danke
hier das Programm
wenn SensorZi4 geschlossen dann
wenn SensorZi1 und SensorZi2 geschlossen dann
wenn SensorZi1 und SensorZi2 und SensorZi3 geschlossen dann
Wenn SensorZi1 geschlossen dann
AnzeigeZisterne := "viertel"
AnzeigeZisterne := "dreiviertel"
AnzeigeZisterne := "halb"
AnzeigeZisterne := "voll"
Hauswasserwerk einschalten
sonst
AnzeigeZisterne := "leer"
Hauswasserwerk ausschalten
endewenn
endewenn
endewenn
endewenn
-
- Ehrenmitglied
- Beiträge: 12194
- Registriert: 29.07.2006, 15:58
- Wohnort: Schweiz
- Danksagung erhalten: 5 Mal
Re: Problem mit Sensorabfrage
Hallo Futtel1
Ich glaube, du hast das mit den WENN-Bedingungen vollkommen falsch verstanden: Wenn eine solche Bedingung zutrifft, führt das Makro alles aus, was zwischen dem "dann" und dem (zugehörigen!) "endewenn" steht. Sonst springt es direkt auf die Zeile NACH dem (zugehörigen!) "endewenn".
In deinem Fall prüft das Makro, ob Sensor 4 geschlossen ist. Ist das nicht der Fall, werden die folgenden 3 WENN-Bedingungen gar nicht mehr abgefragt, sondern gleich hinter das zugehörige, also das letzte "endewenn" gesprungen... fertig! (Sind mehrere "Endewenn's" verschachtelt, gehören immer das äusserste WENN und ENDEWENN zusammen, dann die zweitäussersten usw. - mehr dazu findest du hier: http://homematic-forum.de/forum/viewtop ... 362#p19362)
Aus der Reihenfolge deiner Bedingungen lässt sich ferner nur mit kriminaltechnischen Überlegungen erraten, wie die Sensoren angeordnet sein könnten. Da es offenbar möglich ist, dass 1 + 2 + 3 gleichzeitig unter Wasser stehen, muss 1 unten und 4 oben sein.
Das Rätselraten geht aber weiter... Deine Bedingungen haben folgende Reihenfolge:
Die Zustände dann diese:
Wenn nun Homeputer nicht schon ganz zum Ende des Makros gesprungen wäre und sich - wie ich - die Mühe machen würde, da eine Zuordnung reinzubringen, käme wohl folgendes dabei raus:
oder vielleicht alles umgedreht:
Du siehst: Ein Bisschen mehr Sorgfalt wird beim Programmieren schon notwendig sein!
Trotz allem nun ein Vorschlag, der funktionieren sollte; mein folgendes Makro geht so vor: Zunächst wird "leer" in die Anzeige geschrieben. Dann testet das Makro von unten nach oben, welche Sensoren "nass" sind und überschreibt - wenn ja - die Anzeige mit dem entsprechenden Niveau.
Steht am Schluss immer noch "leer" in der Anzeige, wird das Hauswasserwerk ausgeschaltet; sonst eingeschaltet.
Ich empfehle dir auch, mal die Homeputer-Hilfe systematisch durchzuarbeiten, und ein paar Beispiele dort und solche, die du hier im Forum findest, nachzuvollziehen.
Viele Grüsse
Bümpi
Ich glaube, du hast das mit den WENN-Bedingungen vollkommen falsch verstanden: Wenn eine solche Bedingung zutrifft, führt das Makro alles aus, was zwischen dem "dann" und dem (zugehörigen!) "endewenn" steht. Sonst springt es direkt auf die Zeile NACH dem (zugehörigen!) "endewenn".
In deinem Fall prüft das Makro, ob Sensor 4 geschlossen ist. Ist das nicht der Fall, werden die folgenden 3 WENN-Bedingungen gar nicht mehr abgefragt, sondern gleich hinter das zugehörige, also das letzte "endewenn" gesprungen... fertig! (Sind mehrere "Endewenn's" verschachtelt, gehören immer das äusserste WENN und ENDEWENN zusammen, dann die zweitäussersten usw. - mehr dazu findest du hier: http://homematic-forum.de/forum/viewtop ... 362#p19362)
Aus der Reihenfolge deiner Bedingungen lässt sich ferner nur mit kriminaltechnischen Überlegungen erraten, wie die Sensoren angeordnet sein könnten. Da es offenbar möglich ist, dass 1 + 2 + 3 gleichzeitig unter Wasser stehen, muss 1 unten und 4 oben sein.
Das Rätselraten geht aber weiter... Deine Bedingungen haben folgende Reihenfolge:
Code: Alles auswählen
4
1 + 2
1 + 2 + 3
1
Code: Alles auswählen
viertel
dreiviertel
halb
voll
Code: Alles auswählen
viertel = 4
dreiviertel = 1 + 2
halb = 1 + 2 + 3
voll = 1
Code: Alles auswählen
viertel = 1
dreiviertel = 1 + 2 + 3
halb = 1 + 2
voll = 4
Trotz allem nun ein Vorschlag, der funktionieren sollte; mein folgendes Makro geht so vor: Zunächst wird "leer" in die Anzeige geschrieben. Dann testet das Makro von unten nach oben, welche Sensoren "nass" sind und überschreibt - wenn ja - die Anzeige mit dem entsprechenden Niveau.
Steht am Schluss immer noch "leer" in der Anzeige, wird das Hauswasserwerk ausgeschaltet; sonst eingeschaltet.
Code: Alles auswählen
AnzeigeZisterne := "leer"
wenn SensorZi1 geschlossen dann
AnzeigeZisterne := "viertel"
endewenn
wenn SensorZi2 geschlossen dann
AnzeigeZisterne := "halb"
endewenn
wenn SensorZi3 geschlossen dann
AnzeigeZisterne := "dreiviertel"
endewenn
wenn SensorZi3 geschlossen dann
AnzeigeZisterne := "voll"
endewenn
wenn AnzeigeZisterne = "leer" dann
Hauswasserwerk einschalten
sonst
Hauswasserwerk ausschalten
endewenn
Viele Grüsse
Bümpi
- Herbert_Testmann
- Beiträge: 11062
- Registriert: 17.01.2009, 11:30
- Danksagung erhalten: 7 Mal
Re: Problem mit Sensorabfrage
Holla Buempibuempi hat geschrieben:BümpiCode: Alles auswählen
wenn AnzeigeZisterne = "leer" dann Hauswasserwerk einschalten sonst Hauswasserwerk ausschalten endewenn
mal wieder die Kristallkugel poliert, ja ??
Ich _vermute_ eigentlich, dass die letzte Bedingung genau umgekehrt funktionieren soll. Zisterne voll -> Pumpe ein.
Auflösung des Rätsels folgt sicher heute noch
-
- Ehrenmitglied
- Beiträge: 12194
- Registriert: 29.07.2006, 15:58
- Wohnort: Schweiz
- Danksagung erhalten: 5 Mal
Re: Problem mit Sensorabfrage
... hast du bestimmt Recht. Ein- und Ausschalten in diesem letzten WENN-Block gehören vertauscht. - Hab auch ich mal gepfuschtHerbert_Testmann hat geschrieben:Ich _vermute_ eigentlich, dass die letzte Bedingung genau umgekehrt funktionieren soll. Zisterne voll -> Pumpe ein.
Viele Grüsse
Bümpi
Re: Problem mit Sensorabfrage
Hallo, vielen Dank für die schnellen Antworten.
ich wollte die "wenn" verschachteln also wenn die oberste wenn Funktion nicht zutrifft dann die 2. usw.
zu den Sensoren
wenn kein Sensor bedeckt ist dann leer und Hauswasserwerk aus.
wenn 1 nass dann viertel
wenn 2 nass dann halb
wenn 3 nass dann dreiviertel
wenn 4 nass dann voll
ich wollte noch mit abfragen ob ein Sensor hängt desshalb die
wenn 1 und 2 und3 dann Anweisung muss aber nicht unbedingt sein. denn wenn 4 nass anzeigt kann man davon ausgehen dass 1 also der unterste auch im Wasser steht.
nochmal anders: wenn die Zisterne in wirklichkeit leer ist aber ein sensor hängen bleibt, z.B Sensor 4 (es sind Schwimmer)
läuft mein Hauswasserwerk trocken und stirbt. ich hoff ich konnte das so einigermassen erklären.
wenn kein sensor bedeckt ist dann leer und Hauswasserwerk aus.
ich werde mal dein Programm ausprobieren vielen Dank..
ich wollte die "wenn" verschachteln also wenn die oberste wenn Funktion nicht zutrifft dann die 2. usw.
zu den Sensoren
wenn kein Sensor bedeckt ist dann leer und Hauswasserwerk aus.
wenn 1 nass dann viertel
wenn 2 nass dann halb
wenn 3 nass dann dreiviertel
wenn 4 nass dann voll
ich wollte noch mit abfragen ob ein Sensor hängt desshalb die
wenn 1 und 2 und3 dann Anweisung muss aber nicht unbedingt sein. denn wenn 4 nass anzeigt kann man davon ausgehen dass 1 also der unterste auch im Wasser steht.
nochmal anders: wenn die Zisterne in wirklichkeit leer ist aber ein sensor hängen bleibt, z.B Sensor 4 (es sind Schwimmer)
läuft mein Hauswasserwerk trocken und stirbt. ich hoff ich konnte das so einigermassen erklären.
wenn kein sensor bedeckt ist dann leer und Hauswasserwerk aus.
ich werde mal dein Programm ausprobieren vielen Dank..
-
- Ehrenmitglied
- Beiträge: 12194
- Registriert: 29.07.2006, 15:58
- Wohnort: Schweiz
- Danksagung erhalten: 5 Mal
Re: Problem mit Sensorabfrage
... dann darfst du die WENN's eben gerade nicht verschachteln (= ein WENN ins andere "hineinpacken" - lies auch meinen Link zu diesem Thema!). Wenn eine Bedingung NICHT zutrifft, kümmert sich das Makro nicht darum, was du in diesen Block alles reingepackt hast!Futtel1 hat geschrieben:ich wollte die "wenn" verschachteln also wenn die oberste wenn Funktion nicht zutrifft dann die 2. usw.
... genau wie du es sagst: Er soll zur zweiten springen. Also die WENN's NACHeinander (wie ich es gemacht habe) und nicht INeinander. Mit SONST konnte man da auch noch operieren... aber zuerst musst du mal das ganz gewöhnliche WENN richtig handhaben können.Futtel1 hat geschrieben:wenn die oberste wenn Funktion nicht zutrifft dann die 2. usw.
Viele Grüsse
Bümpi
Re: Problem mit Sensorabfrage
so nu es funktioniert so nun
ich werde mir das wenn noch mal genauer anschauen ich dachte wirklich man kann das so machen
vielen Dank nochmal
Gruß Futtel1
ich werde mir das wenn noch mal genauer anschauen ich dachte wirklich man kann das so machen
vielen Dank nochmal
Gruß Futtel1
-
- Beiträge: 194
- Registriert: 19.09.2006, 12:59
Re: Problem mit Sensorabfrage
Hallo Futtel1
was sind denn das für Sensoren, die Du da im Wasser hast ?????
Wenns geht bitte Bild und Technik posten, danke
und an welchem FS20-Modul sind diese angeschlossen ????? (HMS100 TFK;oder FS20 S8M-8 Kanal-Sendemodul )
Viele Grüße
Strohfeuer
was sind denn das für Sensoren, die Du da im Wasser hast ?????
Wenns geht bitte Bild und Technik posten, danke
und an welchem FS20-Modul sind diese angeschlossen ????? (HMS100 TFK;oder FS20 S8M-8 Kanal-Sendemodul )
Viele Grüße
Strohfeuer
Re: Problem mit Sensorabfrage
Hallo zusammen,
@strohfeuer
Ich denke da kanntste ruhig auf HMS100 Serie tippen
HMS100WD oder die TFK´s
ELV FS20 Sender wären da zum Dauerfeuer
Oder hab ich da Unrecht
Mfg.
m.jansen
@strohfeuer
Ich denke da kanntste ruhig auf HMS100 Serie tippen
HMS100WD oder die TFK´s
ELV FS20 Sender wären da zum Dauerfeuer
Oder hab ich da Unrecht
Mfg.
m.jansen
-
- Beiträge: 6693
- Registriert: 19.03.2007, 08:21
- Danksagung erhalten: 2 Mal
Re: Problem mit Sensorabfrage
Das geht mit FS20 problemlos. Meine Balkonbewässerung läuft seit Jahren mit einem FS20TKS prima.
Würde man einen FS20TFK nehmen, ginge es einfacher, aber die TKS gabs damals für 5€..., und mit Bümpis Hilfe haben wir das Makro für die TKS auch hinbekommen.
Als Wassersensor dient eine Lüsterklemme, die im Wasser liegt (oder nicht, wenn kein Wasser mehr im Kasten ist).
Würde man einen FS20TFK nehmen, ginge es einfacher, aber die TKS gabs damals für 5€..., und mit Bümpis Hilfe haben wir das Makro für die TKS auch hinbekommen.
Als Wassersensor dient eine Lüsterklemme, die im Wasser liegt (oder nicht, wenn kein Wasser mehr im Kasten ist).
Gruß - Toni
KS300 + Sonnendauer + Windrichtung, KS888, HM-CC-TC/HM-CC-VD, FHT80b, und etwas FS20-xx, Keymatic, EM1000, CCU2 und FHZ2000 sowie HP Studio, HPCL + Upgrade für FHZ
KS300 + Sonnendauer + Windrichtung, KS888, HM-CC-TC/HM-CC-VD, FHT80b, und etwas FS20-xx, Keymatic, EM1000, CCU2 und FHZ2000 sowie HP Studio, HPCL + Upgrade für FHZ