Hauptmenü

Frage zu reapeatcmd

Begonnen von Superposchi, 13 September 2021, 08:25:53

Vorheriges Thema - Nächstes Thema

Superposchi

Ich habe eine Frage zum Attribut repeatcmd.
Die Angabe  kann ja für jeden DOIF-Fall einzeln eingestellt werden indem man mehrere Angaben mit Doppelpunkt trennt.

Kann man für einen einzelnen DOIF-Fall das Attribut auch deaktivieren, aber für die restlichen Falls aktiviert lassen?

Damian

Zitat von: Superposchi am 13 September 2021, 08:25:53
Ich habe eine Frage zum Attribut repeatcmd.
Die Angabe  kann ja für jeden DOIF-Fall einzeln eingestellt werden indem man mehrere Angaben mit Doppelpunkt trennt.

Kann man für einen einzelnen DOIF-Fall das Attribut auch deaktivieren, aber für die restlichen Falls aktiviert lassen?

Nein. Man muss das Attribut ändern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Superposchi

Wie ist das genau gemeint?
Aus den Falls wo es deaktiviert wird das attribut löschen und es nur in dem Fall setzen wo es gebraucht wird, oder wie?

Superposchi

Ich habe es jetzt so umgesetzt:
(([unit_sz_ventilator] eq "on") and ([unit_sz_ventilator:mode] ne "sleep"))
(deleteattr steuerung_schlafzimmerventiator repeatcmd) (set unit_sz_ventilator fan_speed_percent 1)
DOELSEIF (([unit_sz_ventilator] eq "on") and ([unit_sz_ventilator:mode] ne "max"))
(deleteattr steuerung_schlafzimmerventiator repeatcmd) (set unit_sz_ventilator fan_speed_percent 9)
DOELSEIF (([unit_sz_ventilator] eq "on") and ([unit_sz_ventilator:mode] ne "normal"))
(deleteattr steuerung_schlafzimmerventiator repeatcmd) (set unit_sz_ventilator fan_speed_percent 5)
DOELSEIF (([unit_sz_ventilator] eq "on") and ([unit_sz_ventilator:mode] ne "fresh"))
(attr steuerung_schlafzimmerventiator repeatcmd 0:0:0:60) (set unit_sz_ventilator fan_speed_percent _{(int(rand(9))+1)})


Allerdings bekomme ich beim Ausführen des cmd4 folgenden Fehler:
set unit_sz_ventilator fan_speed_percent _9: Failed to execute function Set: Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 351, in _onMessage
    fct_timeout,
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 94, in Set
    return await utils.handle_set(self._conf_set, self, hash, args, argsh)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 230, in handle_set
    final_params[param], cmd_def["params"][param]
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 149, in convert2format
    return int(value)
ValueError: invalid literal for int() with base 10: '_9'

Das Attribut wird aber gesetzt.

MadMax-FHEM

Vielleicht: (attr steuerung_schlafzimmerventiator repeatcmd 0:0:0:60) (set unit_sz_ventilator fan_speed_percent _{(int(rand(9))+1)})

Attributänderungen resultieren aber (ohne silent? oder quiet oder so?) in dem roten Fragezeichen...
...und sind OHNE SPEICHERUNG (save config) bei einem Restart (oder Reboot) "weg"...

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)

Superposchi

schon gesehen und korregiert.
Leider reagiert das Ventilator-Device im Moment gar nicht, weshalb ich nicht weiter testen kann. Wahrscheinlich hat sich das Fhempy verabschiedet, ist irgendwie ziemlich instabil bei mir.

Wenn ich dich richtig verstehe meinst du, dass das Attribut gesetzt wird, aber die Änderung nicht in die Configuration gespeichert wird und damit beim nächsten Neustart des Servers weg ist.
Da der Server ja eigentlich durchläuft wäre das jetzt nicht so schlimm, aber anders wäre es natürlich schöner.
Was genau meinst du mit quiet bzw. silent?
Das sagt mir nichts.

MadMax-FHEM

Zitat von: Superposchi am 13 September 2021, 13:43:29
Wenn ich dich richtig verstehe meinst du, dass das Attribut gesetzt wird, aber die Änderung nicht in die Configuration gespeichert wird und damit beim nächsten Neustart des Servers weg ist.
Da der Server ja eigentlich durchläuft wäre das jetzt nicht so schlimm, aber anders wäre es natürlich schöner.

Jep, genau so.
Aber Durchlaufen ist ja "nur" der Plan, wenn fhem "abschmiert", dann ist der Plan dahin und die Attribute nicht gespeichert.
Ein automatisches Speichern (was ja manche so machen, entweder nach "automatisierten Änderungen" oder einfach "immer wieder mal") ist halt "gefährlich", weil ja unklar ist/sein kann, was denn tatsächlich alles gespeichert wird (weil es kann ja auch parallel manuell "gefummelt" werden ;)  )...

Zitat von: Superposchi am 13 September 2021, 13:43:29
Was genau meinst du mit quiet bzw. silent?
Das sagt mir nichts.

Hab nur irgendwo im Forum mitgelesen, dass es wohl bei Attributänderung einen weiteren "Parameter" gibt, der eben das "rote Fragezeichen" unterdrückt...
...aber es wird trotzdem nichts gespeichert (soweit ich weiß)...

Müsstest du halt suchen...
...evtl. finde ich es auch wieder.

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)

Superposchi

Wenn trotzdem nichts gespeichert wird und lediglich das rote "?" unterdrückt wird, bringt es ja eigentlich herzlich wenig.

Das mit dem abschmieren ist natürlich ein Argument, aber wenn der Befehl dann erneut ausgeführt wird, wird ja auch das Attribut wieder neu gesetzt. Es würde also nur dann zu einem Fehler kommen wenn Fhem neustartet während der betroffene DOIF-Fall aktiv ist und das Gerät weiterläuft. Relativ unwahrscheinlich würde ich sagen. Und selbst wenn, würde es ja beim nächsten Aufruf dann wieder richtig laufen. Es wäre also im schlimmsten Fall ein kurzzeitiger - und in dem Fall unbedeutender - Fehler.

MadMax-FHEM

Zitat von: Superposchi am 13 September 2021, 14:43:33
Wenn trotzdem nichts gespeichert wird und lediglich das rote "?" unterdrückt wird, bringt es ja eigentlich herzlich wenig.

Naja, manch einen Ästheten (der autom. Änderungen vornimmt/nehmen lässt) stört halt das rote Fragezeichen in der Oberfläche...
...und autom. Speichern ist ihm halt zu "heikel"...

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)

Damian

Man kann natürlich statt fester Zahlen auch Readings bei repeatcmd angegeben. Das Reading kann man natürlich dann entsprechend setzen. Allerdings wird solange repeatcmd aktiv läuft, der Wert nicht neu ausgelesen, sondern erst dann, wenn eine erneute Wiederholung beginnt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Superposchi

ZitatMan kann natürlich statt fester Zahlen auch Readings bei repeatcmd angegeben. Das Reading kann man natürlich dann entsprechend setzen. Allerdings wird solange repeatcmd aktiv läuft, der Wert nicht neu ausgelesen, sondern erst dann, wenn eine erneute Wiederholung beginnt.
Sorry, aber was soll das bringen - ich durchblicke den Sinn deiner Aussage im Moment noch nicht.