Hauptmenü

[Gelöst] Denkfehler

Begonnen von MarkoP, 18 April 2020, 09:38:16

Vorheriges Thema - Nächstes Thema

Nobbynews

Zitat von: MarkoP am 18 April 2020, 20:48:10
Das notify FUNKTIONIERT! Nur leider funktioniert es IMMER sobald es ausgelöst wird, EGAL OB DIE IF-CONDITION ZUTRIFFT ODER NICHT!
Damit ist für mich als Laie klar, dass der regexp greift und auch das auslösende Kommando funktioniert. Lediglich die If-Bedingung wird nicht ausgewertet.
Wie ist das denn gemeint?
Die if-Bedingung hat nichts mit der Auslösung des notify zu tun, sondern wird erst nach Auslösung ausgeführt. Die Auslösung erfolgt über das Suchmuster bzw. regexp.
Schon mal ins Wiki geschaut? https://wiki.fhem.de/wiki/Notify
define <name> notify <Suchmuster> <command>
Bei Dir also:
<name>:  define Nachtruhe_aktivieren_Schaltung
<Suchmuster>: Nachtruhe:absent
<command>: { if ((Value("DM920uHD") eq "off") ) {fhem ("set HomeStatus 2") } }

Die if-Bedingung kann aber nur funktionieren, wenn bei der Abfrage von Value("DM920uHD") das Ergebnis "off" ist.
Daher nochmal, wie auch von Otto bzgl. "Nachtruhe" geschrieben: Was ergibt
{Value("DM920uHD")}
in der Kommandozeile von FHEM eingegeben?

Norbert

KölnSolar

ZitatWenn ich das Sternchen verwende wird die Schaltung ja auch beim Aufwachen ausgelöst, dass soll ja nicht sein.
Ach...
ZitatDu bist sicher, dass die regexp im notify passen ? Ich würd immer meine Perl-Funktion mit "...notify devicename:.*..." testen oder umgekehrt das notify(den regexp) mit einem einfachen Befehl, zB. set lampe on.
Nun beantwortet. ::)
Und schließe mich als Dritter u. gefühlt 10. Mal an mit:
ZitatWas ergibt in der Kommandozeile eingegeben:
Code: [Auswählen]
{Value("DM920uHD")}
"on" oder "off" ?
(Post #3)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

kjmEjfu

Zitat von: MarkoP am 18 April 2020, 20:48:10
Es soll schon automatisch sein, also nicht extra einen Button drücken müssen oder so.

Drucksensor unter der Matratze.

Aber ich würde trotzdem über den Schalter nachdenken. Ist nicht aufwendig und absolut zuverlässig.
Es kann doch sicherlich auch passieren, dass die Handys gerade aufladen, die Dreambox ausgeschaltet ist, ihr aber Besuch habt ... und schon startet die Nachtschaltung.
Migriere derzeit zu Home Assistant

MarkoP

@Nobbynews
Die If-Condition soll ja den Command nur dann ausführen wenn sie zutrifft. Das tut sie aber nicht, sondern das notify wird IMMER ausgeführt, egal ob die If-Condition zutrifft oder eben nicht.
Was ist daran so schwer zu verstehen? Ich verzweifele gerade und weiß echt nicht wie ich es noch deutlicher schreiben soll.

@all
{Value("DM920uHD")} ergibt "on" wenn die Dreambox an ist und "off" wenn sie im Standby ist (ohne Anführungszeichen).
Das ist doch wohl logisch. Sorry, aber ich verstehe die Frage nicht.

@kjmEjfu
Sorry, aber verarschen kannst du deinen Opa. Wenn du nicht weiter helfen willst ist das deine Sache, aber dann halt dich raus damit der Threat sauber bleibt.
Dein Doif klingt interessant, aber dein letzter Post ...
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

KölnSolar

#19
Zitataber dein letzter Post ...
war in meinen Augen absolut in Ordnung u. ernst gemeint.

ZitatIch verzweifele gerade und weiß echt nicht wie ich es noch deutlicher schreiben soll.
So langsam wird es ja klarer. Hättest Du aber im Eingangspost schon machen können u. würde Rückfragen ersparen.  ::) Die Helferlein sind blind und spekulieren in alle Richtungen.

Ich guck mir nochmal Deinen Eingangspost an, weil irgendwas an Deinen Antworten nicht stimmen kann. die ifs(abgesehen von eq vs ==) sollten funktionieren. Stell doch bitte zwischenzeitlich ein list von DM920uHD u. Nachtruhe ein. Vielleicht fällt uns da ja was auf.

edit: so, da die notifys funktionieren sehen sie korrekt dann so aus
define Nachtruhe_aktivieren_Schaltung notify Nachtruhe:absent { if (Value("DM920uHD") eq "off") {fhem ("set HomeStatus 2") } }define Nachtruhe_aktivieren_Box notify DM920uHD:off { if (Value("Nachtruhe") eq "absent")  {fhem ("set HomeStatus 2") } }
Und ich weiß jetzt schon, dass Du schreien wirst, dass sie wieder nicht funktionieren. Glaub mir, sie tun das, was sie lt. ihrer Definition sollen. Guck es Dir im event monitor an.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Gisbert

Zitat@kjmEjfu
Sorry, aber verarschen kannst du deinen Opa. Wenn du nicht weiter helfen willst ist das deine Sache, aber dann halt dich raus damit der Threat sauber bleibt.
Dein Doif klingt interessant, aber dein letzter Post ...

Hallo MarkoP,

ich glaube nicht, dass kjmEjfu dich auf den Arm nehmen wollte. Es handelt sich um Alternativen, die auch hier im Forum schon ganz ernsthaft diskutiert wurden.

Wie sich ein Thread (von Threat wollen wir mal lieber Abstand nehmen) entwickelt, weiß man nie genau, es sei denn, es ist eine Doku, bei dem nur einer Schreibrechte hat. In den allermeisten Fällen wird für das geschilderte Problem eine Lösung gefunden, wie sich ja auch hier andeutet.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Otto123

@MarkoP Meinen Post #14 hattest Du gelesen und verstanden?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Nobbynews

Zitat von: MarkoP am 19 April 2020, 21:07:21
@Nobbynews
Die If-Condition soll ja den Command nur dann ausführen wenn sie zutrifft. Das tut sie aber nicht, sondern das notify wird IMMER ausgeführt, egal ob die If-Condition zutrifft oder eben nicht.
Was ist daran so schwer zu verstehen? Ich verzweifele gerade und weiß echt nicht wie ich es noch deutlicher schreiben soll.
Die if-Bedingung bzw. alles innerhalb der {} IST das Command aus der def des notify.
Das ist wie bei meinen Jung-Ingenieuren, denen man erst einmal beibringen muss, das zu sagen oder zu schreiben was sie meinen, und nicht das was sie meinen gesagt oder geschrieben zu haben....

Zitat von: MarkoP am 19 April 2020, 21:07:21
@all
{Value("DM920uHD")} ergibt "on" wenn die Dreambox an ist und "off" wenn sie im Standby ist (ohne Anführungszeichen).
Das ist doch wohl logisch. Sorry, aber ich verstehe die Frage nicht.
Es ist ein Unterschied, ob es "off", "Off" oder vielleicht sogar "OFF" liefert??

Zitat von: MarkoP am 19 April 2020, 21:07:21
@kjmEjfu
Sorry, aber verarschen kannst du deinen Opa. Wenn du nicht weiter helfen willst ist das deine Sache, aber dann halt dich raus damit der Threat sauber bleibt.
Und wenn man sich nicht helfen lassen will, dann lassen wir es halt sein.....
Und wech.....


MarkoP

ZitatDie if-Bedingung bzw. alles innerhalb der {} IST das Command aus der def des notify.
Wie man es ausdrückt ist doch egal, es kommt aufs gleiche Raus. Die If-Condition soll dafür sorgen, dass das Kommando nur bei Erfüllung der Bedingung ausgeführt wird und das funktioniert eben nicht.

ZitatEs ist ein Unterschied, ob es "off", "Off" oder vielleicht sogar "OFF" liefert??
Sorry, aber dann sagt das doch so auch. Für mich ist off erst mal off, an die Schreibweise denke ich da relativ wenig.

ZitatUnd wenn man sich nicht helfen lassen will, dann lassen wir es halt sein.....
Wer sagt denn das ich mir nicht helfen lassen will? Nur weil ich einen nutzlosen und dummen Kommentar der als Verarsche gemeint ist anprangere hat das nichts mit Hilfeverweigerung zu tun.
Wie würdest du denn auf so einen sinnlosen Kommentar reagieren, dich bedanken? Glaube ich nicht.

Nichts desto trotz scheine ich das Problem irgendwie gelöst zu haben. Jedenfalls hat gestern Abend die Schaltung die auf die Handys reagiert funktioniert.
Wo genau der Fehler liegt ist mir zwar nicht klar, doch nachdem ich die Notify gelöscht und neu angelegt (in der Befehlszeile Zeichen für Zeichen eingegeben statt Copy/Paste) habe, funktioniert es jetzt offenbar. Muss den zweiten heute Abend mal bewusst testen. Kann ja leider die Box nicht ständig an und aus schalten um rumzuexperimentieren.
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Otto123

#24
Du kannst mich gern weiter ignorieren - aber dieser Code funktioniert nicht so wie Du denkst!
{ if ((Value("DM920uHD") == "off") ) {fhem ("set HomeStatus 2") } }
Bzw eben unabhängig von der Bedingung immer gleich. Es sei denn Value("DM920uHD") beginnt mit einer Zahl ungleich 0. Aber eigentlich war das nicht deine gewünschte Abfrage.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gisbert

Hallo MarkoP,

ZitatNur weil ich einen nutzlosen und dummen Kommentar der als Verarsche gemeint ist

Wenn wir uns auf den gleichen Kommentar beziehen (glaube schon, Gewichtsensor unter den Lattenrost ...), dann war der gar nicht dumm, nutzlos oder eine Verarsche, wie ich versucht habe halbwegs sachlich darzustellen.

Auf jeden Fall solltest du dir überlegen, etwas großzügiger auf vermeintliche unsachliche Kommentare zu reagieren. Du tust dir selbst einen größeren Gefallen damit als anderen, zumindest mittel- bis langfristig.

Auf der immer noch sachlichen Ebene gehört zu einem gelösten Problem die Schilderung der Lösung (in Form von list, raw-Definition, ggf. Bild / hier eher nicht), damit andere, die das gleiche Problem haben, etwas lernen können. Als 2. Maßnahme sollte im Titel des 1. Beitrages durch Editieren ein [gelöst] oder ähnliches vorangestellt werden.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

MarkoP

@Otto123
Entschuldige ich ignoriere dich nicht, dachte nur dass es nicht extra Erwähnenswert ist das ich es nach der Erklärung längst geändert habe. Meine Schuld.

@Gisbert
Mag sein das ich überreagiert habe, aber manchmal kommen in Foren Antworten herüber die einfach unterstes Niveau sind.
Und ganz ehrlich einen Gewichtssensor sehe ich - besonders in meinem Stadium des Wissens - nicht wirklich als Sinnvoll an. Und was am wichtigsten Ist, es kommt ja auch immer auf die Schreibweise an und die klang nicht wirklich sachlich, oder?

Was das Problem angeht ist es ja noch nicht endgültig gelöst, da ich erst eine der beiden Notify's testen konnte.
Aber mit ein wenig Unterstützung werde ich die gewünschten Dinge - nach erfolgreichem Durchlauf des 2. Notify's - gerne ergänzen.
Dazu brauche ich allerdings eine Kurzanleitung, da mir weder die Begriffe List und Raw im Zusammenhang mit Fhem etwas sagen, noch wie ich den Titel des Threats nachträglich ändern kann.
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

Gisbert

Hallo MarkoP,

im Eingabefeld von Fhem eintippen: list <device>, dann wird alles zum jeweiligen Device angezeigt.
Die "Raw definition" findest du unter jedem Device, einfach anklicken, dann bekommst du im wesentlichen die Definition des Devices.

Ansonsten die Fhem-Einstiegslektüre durchackern, ins Wiki reinschauen, die commandref ist ebenfalls sehr nützlich, googlen und zuerst selbst schauen, ob man das Problem lösen kann. Das gelingt am Anfang nicht so gut, aber die Bemühungen bis dahin führen dazu, das Problem sehr gut zu beschreiben, inkl. list, raw definition, log-Auszug. Man kann nicht alles wissen, man kann sich aber bemühen.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

MarkoP

@Gisbert
Danke für die Erläuterungen. Mein Problem ist nicht das Bemühen, sondern das verstehen und behalten.
Gerade das Einsteiger-PDF hab ich jetzt bestimmt schon 8 Mal durchgelesen, aber wenn ich hinten angekommen bin hab ich viele Sachen vom Anfang schon wieder vergessen.

Ich habe einfach das Syndrom mir zuviel aufzuhalsen und viel zu viel durcheinander zu machen, das hat dann zur Folge, dass ich vieles schon wieder vergessen habe bevor ich es umgesetzt habe.
Merkt man auch daran, dass ich an zig Fronen gleichzeitig "kämpfe" und teilweise die Sachen auch durcheinander schmeiße.

Wenn ich - hoffentlich heute Abend - die zweite Syntex testen kann und diese funktioniert, werde ich die Daten zum Threat hinzufügen.

Ich weiß ja auch nicht was anders ist, wie gesagt habe ich statt die Sachen aus Netzseiten zusammen zu kopieren und mit Copy/Paste in die Befehlszeile reinzukopieren diesmal einfach Zeichen für Zeichen von Hand eingetragen und neu angelegt. Das einzige was mir dazu einfällt wäre, dass sich irgendwo unsichtbare Steuerzeichen ins define eingeschlichen haben - ist sowas denkbar?
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8

MarkoP

So, nachdem ich beide Befehle mehrere Tage getestet habe nachdem ich sie händisch eingegeben habe, funktioneren beide jetzt gut.
Hab jetzt auch einige Änderungen an den Benennung gemacht, damit ich sie später besser nachvollziehen kann.

Hier nur wie gewünscht die List-Ausgaben:
Internals:
   DEF        DM920uHD:off { if ((Value("Nachtruhe") eq "absent") ) {fhem ("set Homestatus 2") } }
   FUUID      5e8cc077-f33f-b8b5-b3b0-a4a44eba0061dc0c
   FVERSION   91_notify.pm:0.193740/2019-05-11
   NAME       Homestatus_Nachtruhe_wechseln_Box
   NOTIFYDEV  DM920uHD
   NR         83
   NTFY_ORDER 50-Nachtruhe_aktivieren_Box
   REGEXP     DM920uHD:off
   STATE      2020-04-25 23:10:50
   TRIGGERTIME 1587849050.79319
   TYPE       notify
   READINGS:
     2020-04-19 11:53:04   state           active
Attributes:
   group      Ereignis (notify)
   room       Steuerung


Internals:
   DEF        Nachtruhe:absent { if ((Value("DM920uHD") eq "off") ) {fhem ("set Homestatus 2") } }
   FUUID      5e8cc1f8-f33f-b8b5-3f76-08c1c5f3623f92a5
   FVERSION   91_notify.pm:0.193740/2019-05-11
   NAME       Homestatus_Nachtruhe_wechseln_Handy
   NOTIFYDEV  Nachtruhe
   NR         84
   NTFY_ORDER 50-Nachtruhe_aktivieren_Schaltung
   REGEXP     Nachtruhe:absent
   STATE      2020-04-25 23:28:53
   TRIGGERTIME 1587850133.68397
   TYPE       notify
   READINGS:
     2020-04-19 11:51:51   state           active
Attributes:
   group      Ereignis (notify)
   room       Steuerung
   verbose    5
Fhem-Server läuft per Bridge mit eigener IP auf einem Docker-Container auf meinem NAS. Alle Geräte haben eine statische IP im Netzwerk und laufen im gleichen Subnetzwerk. DHCP ist deaktiviert. DNS läuft über den Router (Fritzbox Cable), alternative über Googles 8.8.8.8