ich bekomme es leider nicht hin mit einem DOIF mehrere Attribute eines Moduls zu ändern.
Ich habe es erst einmal mit einem Atrribut versucht aber ich bekomme es nicht hin
Mein Versuche führen immer zu Fehlern welche mir das DOIF dann anzeigt.
(set [Rollladenautomatik:ASC_autoShuttersControlEvening] on)
(set Rollladenautomatik:ASC_autoShuttersControlEvening on)
(set Rollladenautomatik ASC_autoShuttersControlEvening on)
zur Erklärung:
Rollloautomatik ist das Modul
ASC_autoShuttersControlEvening ist das attr
Zustand on oder off
stehe irgendwie auf dem Schlauch :-\
Hallo moonsorrox,
dieses Beispiel funktioniert bei mir:
defmod Update.Dieselpreise DOIF ([05:15]) \
(set (AVIAXpress.Leverkusen|bft.Lev.WillyBrandtRing|Jet.Koeln.Berg.Gladbacher.Str|Jet.Koeln.Worringen|PM.Koeln.Liebigstr|Star.Duennwald) start) \
DOELSEIF ([?05:16-21:14] and [myUniFi:LGG6] eq "connected") \
(set (AVIAXpress.Leverkusen|bft.Lev.WillyBrandtRing|Jet.Koeln.Berg.Gladbacher.Str|Jet.Koeln.Worringen|PM.Koeln.Liebigstr|Star.Duennwald) interval 1200) \
DOELSEIF ([?05:16-21:14] and [myUniFi:LGG6] eq "disconnected") \
(set (AVIAXpress.Leverkusen|bft.Lev.WillyBrandtRing|Jet.Koeln.Berg.Gladbacher.Str|Jet.Koeln.Worringen|PM.Koeln.Liebigstr|Star.Duennwald) interval 600) \
DOELSEIF ([21:15]) \
(set (AVIAXpress.Leverkusen|bft.Lev.WillyBrandtRing|Jet.Koeln.Berg.Gladbacher.Str|Jet.Koeln.Worringen|PM.Koeln.Liebigstr|Star.Duennwald) stop)
Damit reduziere ich die Anzahl der Abfragen für den Spritpreismonitor auf die Zeiten, in der ich unterwegs/nicht zuhause bin, und nachts ist die Abfrage gestoppt.
Viele Grüße Gisbert
vielen Dank
das hatte ich auch schon so drin, aber das DOIF meckert bei mir in folgender Form
set (Rollladenautomatik ASC_autoShuttersControlEvening) off: Please define (Rollladenautomatik first
Ein Attribut setzt man doch nicht mittels "set"...
Der "Befehl" für ein Attribut lautet so:
attr Rollladenautomatik ASC_autoShuttersControlEvening on
Wie das dann in DOIF geht: keine Ahnung aber vermutlich "nur" das was ich gepostet habe in Klammern...
Es wird ja "angemosert", dass
"(Rollladenautomatik" nicht definiert ist, weil das nach dem set eben als Aufruf gewertet wird irgendwas bei "(Rollladenautomatik" zu setzen, das Device aber ja "nur" "Rollladenautomatik" heißt, also wird fälschlicherweise wohl die Klammer zum Namen dazu geschlagen...
Gruß, Joachim
Ich hatte auch "attr" schon mit eingebaut, aber irgendwie ein Brett vorm kopf
das DOIF
defmod di_Rollladen_ASC DOIF ([du_Rollladen_ASC] eq "FHEM") (set (Rollladenautomatik ASC_autoShuttersControlEvening) on) DOELSEIF ([du_Rollladen_ASC] eq "Aus") (set (Rollladenautomatik ASC_autoShuttersControlEvening) off)\
attr di_Rollladen_ASC alias Rollladenautomatik ASC
attr di_Rollladen_ASC room Rollladenautomatik
Ich sehe nur set-Befehle...
...nirgends ein attr was auf Rollladenautomatik "wirkt"...
...oder übersehe ich was!?
Und dann solltest du vielleicht mal die Syntax von DOIF lesen: commandref
Gruß, Joachim
Zitat von: MadMax-FHEM am 05 August 2019, 18:07:00
Ich sehe nur set-Befehle...
...nirgends ein attr was auf Rollladenautomatik "wirkt"...
...oder übersehe ich was!?
das hatte ich auch nur probiert, aber kein Erfolg gehabt
Zitat von: MadMax-FHEM am 05 August 2019, 18:07:00
Und dann solltest du vielleicht mal die Syntax von DOIF lesen: commandref
ich lese schon die ganze Zeit aber ich finde kein richtiges Beispiel, es sind beispiele drin ohne set Befehle, aber ich habe es nicht gebacken bekommen mal schauen ob ich evtl noch was mit Perl finde
Alleine die Def vom DOIF stimmt doch (meines Erachtens) schon nicht:
Zitat
defmod di_Rollladen_ASC DOIF ([du_Rollladen_ASC] eq "FHEM") ([du_Rollladen_ASC] eq "FHEM") (set (Rollladenautomatik ASC_autoShuttersControlEvening) on) DOELSEIF ([du_Rollladen_ASC] eq "Aus") (set (Rollladenautomatik ASC_autoShuttersControlEvening) off)
Das sind doch (wenn ich nicht irre) 2 Bedingungen OHNE "Kopplung" wie And/OR oder so...
...kann denke ich schon nicht gehen!?
Gibt es dazu keine Fehlermeldung!?
Was spricht dagegen zu versuchen was ich vorgeschlagen habe!?
Einfach meinen "attr-Aufruf" in Klammern ins DOIF!?
defmod di_Rollladen_ASC DOIF ([du_Rollladen_ASC] eq "FHEM") (attr Rollladenautomatik ASC_autoShuttersControlEvening on) DOELSEIF ([du_Rollladen_ASC] eq "Aus") (attr Rollladenautomatik ASC_autoShuttersControlEvening off)
Wobei ich KEIN DOIF nutze...
...daher nicht genau weiß wie es sich mit "triggernden Bedingungen" vs. "abfragende Bedingungen" verhält (ich glaube: "abfragend" mittels "Fragezeichen" davor)...
...also nicht weiß, ob das DOIF dann "schaltet" wenn du willst...
Ich würde vermuten es setzt das Attribut auf "on", wenn du_Rollladen_ASC irgendwie auf "FHEM" gesetzt wird...
...und auf "off", wenn du_Rollladen_ASC auf "Aus" gesetzt wird.
Wichtig (soweit ich DOIF "kenne"): es wird der "state" "geprüft" und nicht irgendein Reading...
EDIT: dir ist aber klar, dass das Setzen von Attributen zu einem "roten Fragezeichen" führt!? Und wenn du nicht speicherst bei einem Neustart der eben in der fhem.cfg stehende Wert genommen wird und (u.U.) NICHT der zuletzt per DOIF gesetzte Wert...
Gruß, Joachim
Ja klar du hast recht, ich habe wohl ein Code Fragment aus meinen Probierversuchen gepostet :-\ :-\
Das sieht so natürlich nicht aus, habe das mal jetzt geändert, dass kann ja kein Mensch gebrauchen ;)
Dein Vorschlag mit dem attr funktioniert natürlich, nur eben das er das "save" nicht verarbeitet.
Ich hatte mal soetwas und da reichte es ein save hinterher zu schicken, dass geht hier aber nicht :-\
Zitat von: moonsorrox am 05 August 2019, 18:56:37
Ich hatte mal soetwas und da reichte es ein save hinterher zu schicken, dass geht hier aber nicht
Warum sollte das nicht gehen, save ist ein normaler Befehl.
ich dachte das es so funktioniert, aber es tut es nicht
(attr BU_Rollladen ASC_Mode_Down on, attr BU_Rollladen ASC_Mode_Up on, save)
die beiden attr schaltet er um, aber das "save" macht er nicht :-\
Und so?
(attr BU_Rollladen ASC_Mode_Down on, attr BU_Rollladen ASC_Mode_Up on)(save)
Übrigens: warum nutzt Du nicht "set <ASC-Device> shutterASCenableToggle <Rollladenname>"? Vorteil ist: das ist ein set Befehl, Du brauchst hier kein save.
Es gibt keinen Grund, warum save nicht funktionieren sollte. Es gibt sogar ein Beispiel im CommandRef:
Zitatdefine di_save DOIF ([+01:00]) (save)
Bist Du sicher, dass er kein save macht? Vielleicht macht er das doch, aber etwas ändert die Konfiguration noch danach? Was sagt die Log?
Ist on überhaupt ein erlaubter Wert?
Zitat von: Ellert am 06 August 2019, 02:54:44
Ist on überhaupt ein erlaubter Wert?
Gute Frage. Ich glaube eher nicht.
Zitat von: CommandRefASC_Mode_Down - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert) (default: always)
ASC_Mode_Up - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert) (default: always)
so hatte ich den save Befehl schon drin und es funktionierte nicht, aber...... siehe weiter
Zitat von: amenomade am 06 August 2019, 01:48:18
Und so?
(attr BU_Rollladen ASC_Mode_Down on, attr BU_Rollladen ASC_Mode_Up on)(save)
Übrigens: warum nutzt Du nicht "set <ASC-Device> shutterASCenableToggle <Rollladenname>"? Vorteil ist: das ist ein set Befehl, Du brauchst hier kein save.
das schaue ich mir an..
Zitat von: Ellert am 06 August 2019, 02:54:44
Ist on überhaupt ein erlaubter Wert?
oh man ja, du hast vollkommen recht :-\ ich bin wohl etwas blind gewesen
Dank auch an amenomade.... gefühlt mehrmals gelesen, aber wohl daneben gelesen
ja es gibt gar keinen "on" Befehl dann kann das auch nicht gehen... :-\ ::)
Sollte sich aber als "Fehlermeldung" im Log was finden lassen!? ;)
Gruß, Joachim
Also das mit dem save geht absolut nicht, egal was ich dort eintrage er will immer ein save manuell hinterher haben.
zu den Log Eintragungen
ja da gibt es einiges von gestern Abend und meinen Versuchen
2019.08.06 01:27:08 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 01:27:03 2: di_Rollladen_ASC: set save: Please define save first
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
2019.08.06 01:09:08 2: di_Rollladen_ASC: set : Usage: set <name> <type-dependent-options>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
2019.08.06 01:08:35 2: di_Rollladen_ASC: set : Usage: set <name> <type-dependent-options>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
2019.08.06 01:08:32 2: di_Rollladen_ASC: set : Usage: set <name> <type-dependent-options>
2019.08.06 01:07:23 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:47:18 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:46:26 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:46:03 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:45:57 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:45:54 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:44:59 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:44:29 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:43:10 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:42:58 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:42:55 2: di_Rollladen_ASC: set save config: Please define save first
2019.08.06 00:41:50 2: di_Rollladen_ASC: set Fhemsave: Please define Fhemsave first
2019.08.06 00:41:38 2: di_Rollladen_ASC: set Fhemsave: Please define Fhemsave first
2019.08.06 00:40:08 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:40:07 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:40:02 2: di_Rollladen_ASC: set save: Please define save first
2019.08.06 00:39:51 2: di_Rollladen_ASC: set save: Please define save first
Ich habe jetzt mal folgendes von amenomade vergeschlagenes genutzt
(set Rollladenautomatik shutterASCenableToggle BU_Rollladen)
ich werde mal im zugehörigen Beitrag fragen wo ich die Umsetzung des Befehls sehe
Zitat von: amenomade am 06 August 2019, 09:04:11
Gute Frage. Ich glaube eher nicht.
So einfach kann die Lösung sein ;)
wie oben schon gesagt ich habs einfach verpennt :-\ soll heißen überhaupt nicht gesehen.
Ich beschäftige mich gerade mit dem set Befehl von amenomade