Hauptmenü

mit DOIF ein Attribut ändern

Begonnen von moonsorrox, 05 August 2019, 17:22:13

Vorheriges Thema - Nächstes Thema

moonsorrox

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  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Gisbert

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​
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

moonsorrox

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
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

moonsorrox

#4
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

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

moonsorrox

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
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

MadMax-FHEM

#7
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

moonsorrox

#8
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  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Ellert

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.

moonsorrox

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  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

amenomade

#11
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?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ellert

Ist on überhaupt ein erlaubter Wert?

amenomade

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)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

moonsorrox

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... :-\ ::)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM