FHEM Forum

FHEM => Frontends => FHEMapp => Thema gestartet von: dafreak am 25 Dezember 2022, 22:41:36

Titel: set Befehl klappt nicht
Beitrag von: dafreak am 25 Dezember 2022, 22:41:36
Ich habe bei einigen FHEM-Devices Probleme beim set-Befehl.
Beispiel: WLED
Ich bekomme es nicht hin über ein Menü oder ein Btn-Click ein Preset zu setzen.
Der Befehl in FHEM "set EG_Wohnzimmer_Wandlampe preset 2" funktioniert einwandfrei, aber unter fhemapp klappt es nicht.
Ich habe es wie folgt eingebunden:
"main": [
    {
      "leftBtn": ["preset:set 1:mdi-party-popper","preset:set 2:mdi-television-classic","preset:set 3:mdi-music"],
      "leftMenu": ["Preset 1:preset 1","Preset 2:preset 2","Preset 3:preset 3"],
      "slider": ["brightness::brightness %v:%n.0:0:255:5"],
      "rightBtn": ["state:ON:mdi-lightbulb::success","state:on:mdi-lightbulb::success","state:off:mdi-lightbulb-off","state:OFF:mdi-lightbulb-off"],
      "rightClick": ["state:on:off","state:off:on"]
    }

Im Reading steht hinterher "set 2". Der Versuch mit "preset set 2" hat leider auch keinen Erfolg gebracht.

Ich habe auch festgestellt, dass ein set-Befehl über das Menü anders zu sein scheint, als über einen Button. Kann das sein? Bei einem Device ging es nur über das Menü und nicht über einen Button.

Danke für eure Hilfe.

... hab gerade noch etwas herausgefunden. Wenn ich den kompletten set-Befehl inkl. Device und set angebe, funktioniert es, aber dann ist es nicht mehr so flexibel mit der absoluten Angabe des Device's.

"leftMenu": ["Preset 1:set EG_Wohnzimmer_Wandlampe preset 1","Preset 2:set EG_Wohnzimmer_Wandlampe preset 2","Preset 3:set EG_Wohnzimmer_Wandlampe preset 3"]
Titel: Antw:set Befehl klappt nicht
Beitrag von: jemu75 am 26 Dezember 2022, 07:47:55
Hast du dir die Hilfe schon mal angesehen?
Hier ist die Funktion der Button beschrieben.
https://github.com/jemu75/fhemApp#hinweis-zur-definition-von-fhem-kommandos (https://github.com/jemu75/fhemApp#hinweis-zur-definition-von-fhem-kommandos)

Melde dich gern, wenn es danach noch Probleme gibt.
Titel: Antw:set Befehl klappt nicht
Beitrag von: dafreak am 26 Dezember 2022, 12:55:43
Klappt leider nicht.
"rightClick": ["preset::3"]
...soll eigentlich ein "set EG_Wohnzimmer_Wandlampe preset 3" auslösen. Es passiert aber nichts.
Mache ich etwas falsch? Das erstgenannte Reading (preset) gilt doch auch für den set-Befehl oder ist das ohne Angabe immer nur state?

Es funktioniert nur so:
"rightClick": ["preset::set EG_Wohnzimmer_Wandlampe preset 3"]
Titel: Antw:set Befehl klappt nicht
Beitrag von: Jamo am 26 Dezember 2022, 18:50:52
Zitat... oder ist das ohne Angabe immer nur state?
Ja, das ist so, "state" ist bei fhem speziell. Also 'set EG_Wohnzimmer_Wandlampe on' (ohne state), oder 'set EG_Wohnzimmer_Wandlampe irgendWasAnderes Wert'.
Titel: Antw:set Befehl klappt nicht
Beitrag von: jemu75 am 26 Dezember 2022, 18:58:51
Du brauchst einfach nur preset 3 reinschreiben. Das "set <device>" ergänzt FHEMApp automatisch.
Alternativ würde auch set %d preset 3 funktionieren.
Aber set preset 3 funktioniert nicht, da bei Angabe von set immer der komplette Befehl hinterlegt werden muss.
Titel: Antw:set Befehl klappt nicht
Beitrag von: dafreak am 28 Dezember 2022, 01:01:50
Es geht tatsächlich nur mit dem set-Befehl inkl. Angabe des Devices über %d :-)
Super danke dir :-)

Aber ich habe hier schon das nächste Mysterium. Ich bekomme keinen set-Befehl an meinen Enigma2-Receiver(VU Uno4k) mit dem "Reading" remoteControl gesendet. Es gibt hier allerdings gar kein Reading für, da es nur ein Befehl ohne Antwort ist.

So funktioniert es leider nicht:
"midClick": "remoteControl::set %d remoteControl UP",

Unter FHEM funktioniert es aber mit:
set EG_Wohnzimmer_VU remoteControl UP

Wenn ich den Befehl über ein Menu abfeuere, geht es komischerweise:
      "rightBtn": "mdi-dots-horizontal-circle-outline",
      "rightMenu": ["Up:set %d remoteControl UP","Down:set %d remoteControl DOWN"]


Gibt es einen Unterscheid zwischen Menü und Button?
Titel: Antw:set Befehl klappt nicht
Beitrag von: jemu75 am 29 Dezember 2022, 08:04:10
Schau mal bitte in die Hilfe zu FHEMApp. Hier ist im Grunde alles sehr ausführlich beschrieben.

Die Grundlogik von FHEMApp gesteht darin, dass readings (oder Attribute oder Internals) auf einen bestimmten Wert geprüft werden und sobald eine Bedingung zutrifft, etwas getan wird. Für die Prüfung sind in den Definitionen immer die beiden ersten Werte (reading:wert:...) zuständig.

Deine Definition funktioniert aus folgendem Grund nicht.
Du hast ein reading angegeben, welches es nach deiner Aussage nicht gibt. Diese Bedingung wird also niemals zutreffen und damit dein definierter Set-Befehl auch niemals ausgeführt.
Tipp: Wenn keine Werteprüfung erfolgen soll, dann nimm am besten immer das Reading state. Das gibt es faktisch in jedem Device.

So sollte dein Button funktionieren:
"midClick": "state::remoteControl UP",

Und, wie ebenfalls in der Hilfe beschrieben, erfolgt bei Menüs keine Werteprüfung.  :)
Titel: Antw:set Befehl klappt nicht
Beitrag von: Himbi777 am 29 Dezember 2022, 16:13:41
Hallo zusammen

ich melde mich wegen einem eventuell ähnlichen Proble.
Ich möchte mit Buttons ein Reading von einem dummy-Device ändern.
Hierzu habe ich folgende Definition in appOtions hinterlegt:
{
  "leftBtn": ["temp-level:2:mdi-minus","temp-level:1:mdi-minus:disabled"],
   "leftClick": ["temp-level::set %d temp-level %i-0.5"],
    "text": ["temp-level::Schaltschwelle bei %n.1 C"],
   "rightBtn": ["temp-level:20:mdi-plus:disabled","temp-level::mdi-plus"],
"rightClick": ["temp-level::set %d temp-level %i0.5"]
    }

Die Funktion in der App klappt damit, der Wert wird hoch bzw. runtergezählt, allerdings ändert sich das Reading nicht.
Wo liegt hier mein Denkfehler ?

Gruß vorab an alle und einen guten Rutsch ins neue Jahr
Gerhard
Titel: Antw:set Befehl klappt nicht
Beitrag von: jemu75 am 29 Dezember 2022, 16:26:06
Funktioniert das Setzen des readings in FHEM über die Kommandoleiste?
Hast du in dem Dummy evtl. das Attribut event-on-change-reading gesetzt?
Titel: Antw:set Befehl klappt nicht
Beitrag von: dafreak am 29 Dezember 2022, 23:12:16
Also ich muss leider nochmal auf mein Problem zurückkommen. @jemu75, du musst echt denken ich bin zu blöd, aber es geht wirklich nicht. Ich habe alle Variationen ausprobiert.
Ich poste hier mal das komplette Template.
In der zweiten Reihe rechts habe ich ein Menü eingebaut, welches mir die UP- und DOWN-Taste betätigt und das funktioniert auch wunderbar(macht nur wenig Sinn als Menü), aber der Button in der Mitte mit UP funktioniert genau so wenig, wie alle anderen Buttons. Bin echt ratlos...
{
  "name": "vu",
  "author": "ich",
  "date": "2022-12-27",
  "description": "",
  "expand": true,
  "expanded": false,
  "show": ["presence:absent:true::99","power:off:true::98"],
  "status": {
    "bar": ["power:on:255:success","power:off:0:"],
    "min": 0,
    "max": 255,
    "error": ["presence:absent::error:offline"]
  },
  "main": [
    {
      "leftBtn": ["state:on:mdi-power::success","state::mdi-power:"],
      "leftClick": ["state:on:off","state:off:on"],
      "text": ["servicename::%s"]
    },
    {
      "leftBtn": "mdi-movie-play-outline",
      "leftClick": "state::remoteControl PVR",
      "midBtn": "mdi-arrow-up-circle",
      "midClick": "state::remoteControl UP",
      "rightBtn": "mdi-dots-horizontal-circle-outline",
      "rightMenu": ["UP:remoteControl UP","DOWN:remoteControl DOWN"]
    },
    {
      "leftBtn": "mdi-arrow-left-circle",
      "leftClick": "state::remoteControl LEFT",
      "midBtn": "mdi-record-circle",
      "midClick": "state::remoteControl OK",
      "rightBtn": "mdi-arrow-right-circle",
      "rightClick": "state::remoteControl RIGHT"
    },
    {
      "leftBtn": ["mute:on:mdi-volume-mute::success","mute::mdi-volume-mute"],
      "leftClick": ["mute:on:set %d mute off","mute::set %d mute on"],
      "midBtn": "mdi-arrow-down-circle",
      "midClick": "state::remoteControl DOWN",
      "rightBtn": "mdi-keyboard-return",
      "rightClick": "state::remoteControl BACK"
    }
  ],
  "info": {
    "left1": ["currentTitle::%s"],
    "right1": ["mute:on::mdi-volume-off:success"],
    "right2": ["recordings:1::mdi-record-rec:error"]
  }
}
Titel: Antw:set Befehl klappt nicht
Beitrag von: Himbi777 am 30 Dezember 2022, 15:23:49
Zitat von: jemu75 am 29 Dezember 2022, 16:26:06
Funktioniert das Setzen des readings in FHEM über die Kommandoleiste?
Hast du in dem Dummy evtl. das Attribut event-on-change-reading gesetzt?
Hallo Jens
das Setzen in der Kommandozeile klappt , event-on-change-reading ist nicht gesetzt, aber auch wenn es gesetzt ist klappt es nicht,
sorry -
Danke für den Support

Gruß Gerhard
Titel: Antw:set Befehl klappt nicht
Beitrag von: jemu75 am 03 Januar 2023, 07:31:22
Hallo Gerhard,

hast du mal probiert, statt
set %d temp-level %i-0.5
nur mit folgender Definition im "set-Teil" zu arebiten
temp-level %i-0.5

Das sollte meiner Meinung nach auch funktionieren.
Ansonsten empfiehlt es sich, dass Logging zu beobachten, da man dort den generierten Befehl sehen kann, der erzeugt und an FHEM übergeben wird. (siehe Aufruf Syslog https://github.com/jemu75/fhemApp#debug-modus-f%C3%BCr-fhemapp-optional (https://github.com/jemu75/fhemApp#debug-modus-f%C3%BCr-fhemapp-optional))

Beste Grüße und einen guten Start ins neue Jahr!
Jens  :)
Titel: Antw:set Befehl klappt nicht
Beitrag von: Himbi777 am 03 Januar 2023, 19:22:01
Hallo Jens
Ebenso noch alles Gute für 2023

Deinen Vorschlag hatte ich schon probiert, es wird einfach als state Befehl gesendet:
state: temp-lvl 4.5

Ich habe die Vermutung dass setreading mit %d zusammen nicht funktioniert.
Wenn ich %d mit dem Devicenamen ersetze, dann klappt das setreading  :)
Ich kann damit leben, wenn das Template jedoch für mehrere Geräte genutzt werden soll passt es schon nicht mehr.
Vielleicht kann dies ja in einem der nächsten Updates berücksichtigt werden.

Ansonsten aber großes Lob für deinen Support und deine schnellen Rückmeldungen
Gruß Gerhard
Titel: Antw:set Befehl klappt nicht
Beitrag von: draddy am 07 Januar 2023, 00:16:43
moin,
@dafreak wenn du direkt im FHEM bist, hast du doch in dem device für das VU sicher eine "set" dropdown liste oder?

kann es sein, dass der befehl für UP, DOWN etc ... einfach nur z.B. UP ist? also OHNE das remotecontrol? (so kenne ich das halt von anderen Multimedia dingen wie z.b. Kodi)
dann wäre es einfach nur: "midClick": ["state::up"]
das remoteControl wird ehr das Reading sein, aber das setzt du eigentlich nicht, sondern wird gesetzt nachdem du den passenden set befehl geschickt hast.

lg
Jens
Titel: Antw:set Befehl klappt nicht
Beitrag von: dafreak am 07 Januar 2023, 20:42:44
Hi draddy,
das geht leider auch nicht. Die Befehle sind unter set auch nicht aufgeführt. Dafür gibt es extra den Befehl "RemoteControl" in der set-Liste. Wenn ich den set-Befehl über ein Menü abschicke, klappt es ja. Macht nur wenig Sinn die Pfeiltasten über ein Menü auszuwählen.
Ich habe auch mal versucht über den Debug-Mode mit Debug-Level 5 etwas zu erkennen, aber da sehe ich gar keine Befehle die rausgesendet werden, nur zig Readings die reinkommen.
Titel: Antw:set Befehl klappt nicht
Beitrag von: draddy am 09 Januar 2023, 10:06:41
ähhhm,

ganz was anderes ...

...
    {
      "leftBtn": "mdi-movie-play-outline",
      "leftClick": "state::remoteControl PVR",
      "midBtn": "mdi-arrow-up-circle",
      "midClick": "state::remoteControl UP",
      "rightBtn": "mdi-dots-horizontal-circle-outline",
      "rightMenu": ["UP:remoteControl UP","DOWN:remoteControl DOWN"]
    },
...


warum hast du, ausser bei dem menu das ja klappt, nirgendwo die [ ] ??
änder das mal bitte und teste dann nochmal ;)
Titel: Antw:set Befehl klappt nicht
Beitrag von: Himbi777 am 09 Januar 2023, 18:19:48
Hallo draddy
Meines Wissens benötigt man [...] nur bei einer Mehrfachauswahl.
Wenn es für einen Button als Beispiel nur einen Wert gibt, muss dieser nicht in Klammern stehen.

Gruß Gerhard
Titel: Antw:set Befehl klappt nicht
Beitrag von: jemu75 am 09 Januar 2023, 20:23:12
Alles was in der Definition mind. einen Doppelpunkt hat, muss auf jeden Fall in ["..."] (sprich in einem Array) stehen. Wenn man z.B. bei einem Icon lediglich den Name des Icon angibt, ohne das damit eine Definition verbunden ist, dann muss man den Name in "..." (sprich als String) angeben werden. In der Dokumentation ist das auch so von mir beschrieben. Meldet euch gern, bei Fragen.  :)
Titel: Antw:set Befehl klappt nicht
Beitrag von: Panik am 04 März 2023, 07:21:09
Hallo,

ich muss mich hiermal anhängen, ohne es als neues Thema zu betiteln,
da der Titel gut passt.

Ich habe ein paar ganz einfache Dummys mit state "on" und "off".
Diese hängen in einem Panel.
Die Dummys lassen sich mit unter fhem ganz einfach mit "set <device> on" oder "set <device> off"
sicher schalten.
Im Attribut appOptions habe ich beim Device
{
  "panel": {
    "status": ["state:on:an:1:sucess","state:off:aus:0:sucess"],
    "min": 0,
    "max": 1,
    "btn": ["state:on:mdi-volume-high","state:off:mdi-volume-off"],
    "click": ["state::set %d on","state::set %d off"]
  }
}


Merkwürdigerweise lassen sie sich in der fhemApp-Oberfläche einschalten, aber nicht aus. ???
Was kann das sein?
Titel: Antw:set Befehl klappt nicht
Beitrag von: Jamo am 04 März 2023, 09:01:24
Bei "click" fehlt die abfrage auf den Status des state, da musst Du noch ein on oder off einsetzten, also "click": ["state:off:set %d on","state:on:set %d off"]
Titel: Antw:set Befehl klappt nicht
Beitrag von: Panik am 04 März 2023, 19:25:59
Hallo Jamo,

ja, so klappt es!  Danke!

Manchmal hat man ein Brett vorm Kopf  ::)
Titel: Antw:set Befehl klappt nicht
Beitrag von: draddy am 05 März 2023, 13:02:38
in deinem fall sollte aber auch ein set %d nicht nötig sein.


"click": ["state:off:on","state:on:off"]

sollte genau so funktionieren das %d ist mal für andere dinge dazu gekommen, die nicht direkte set befehle ausführen (z.B. in meinem Kodi Addon - hier brauche ich das um ein setreading durch zu führen... oder wenn du ein get verwenden willst etc pp)

aber das default set <devicename> macht fhemapp automatisch ;)
Titel: Aw: set Befehl klappt nicht
Beitrag von: FHEM_newbie am 13 April 2023, 23:02:31
Jetzt muss ich mich mal hier ranhängen, da ich nicht mehr weiter komme: bei meinem angepassten Thermostat Template passiert einfach nichts wenn ich die Buttons klicke.

"leftClick": ["Raum_Offset::Raum_Offset %i-1"],
Hier müsste doch egal welchen Wert Raum_Offset hat, dieser um 1 erniedrigt werden?! Es passiert aber gar nichts, im Debug Modus wird kein Befehl abgesetzt...
Titel: Aw: set Befehl klappt nicht
Beitrag von: draddy am 16 April 2023, 15:17:18
funktioniert in der fhem eingabe leiste "set <devicename> Raum_Offset 20"?

oder wie lautet der set befehl dann?
Titel: Aw: set Befehl klappt nicht
Beitrag von: FHEM_newbie am 18 April 2023, 00:30:22
Ja der Befehl set Heizung Raum_Offset -2 funktioniert problemlos.
Im Device bin ich ja schon, da das FHEMapp dort angelegt ist...