FHEM Forum

FHEM => Frontends => Sprachsteuerung => Thema gestartet von: apohero am 10 November 2020, 14:05:55

Titel: [gelöst] Fhem , Alexa für Anfänger
Beitrag von: apohero am 10 November 2020, 14:05:55
Hallo zusammen,

ich bin neu bei FHEM und habe vorher die habridge bzw ein Fuaxmo skript verwendet um meine Lampen zu steuern. Leider funktioniert die ha bridge seit ein paar Wochen nicht mehr. Trotz update findet Alexa meine Geräte nicht mehr.
Jetzt habe ich zu FHEM gewechselt und mit dem Connector und fhem alexa findet er meinen dummy Versuch, den ich in einer Anleitung gefunden habe.
Soweit so gut aber ich möchte ganz simpel, mit Alexa an, aus und dimmen bewerkstelligen. Bei an soll der http request http://192.168.178.33//api/?action=set&ext=DimmerEG&io=Q2&value=100 bei aus http request http://192.168.178.33//api/?action=set&ext=DimmerEG&io=Q2&value=0 geschickt werden.
Beim Dimmen hat früher immer http request http://192.168.178.33//api/?action=set&ext=DimmerEG&io=Q2&value={intensity.percent}  funktioniert.

In FHEM funktioniert der folgende direkte Befehl:
{my $energyTotal = 80;;GetHttpFile("192.168.178.33", "/api/?action=set&ext=DimmerEG&io=Q2&value=$energyTotal")}

Wie erstelle ich nur ein entsprechendes device in FHEM damit die 3 Funktionen klappen?
Ich danke euch schonmal vorab. Ich bin im Forum leider nicht zu 100% fündig geworden.
lg
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: justme1968 am 10 November 2020, 14:14:08
zuerst legst du dir einen dummy an mit den gewünschten kommandos und readings und schaust das du in in fhemweb korrekt bedienen kannst.

hierzu brauchst du passende setList, readingsList, stateFormat und webCmd attribute.

wenn das so weit geht kannst du an deinen dummy ein oder mehrere notify. hängen die den http code ausführen.

wenn das geht bindest du den dummy in alexa wie jede andere lampe in fhem ein. wenn du in 1. deine readings so benannt hast wie alexa-fhem sie erwarte geht alles automatisch. wenn nicht musst du ein passendes homebridgeMapping konfigurieren.


was sind das für Lampen und warum steuerst du sie nicht direkt über fhem?
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 10 November 2020, 15:54:35
Hallo,
und danke für die Antwort. Ich habe schon viel probiert und einige Beispiele aus dem Forum getestet aber leider ohne Erfolg. Aktuell bin ich soweit, weiß aber nicht warum es nicht geht (siehe Anhang)
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 10 November 2020, 15:57:04
achso, noch zu den Lampen: Ich habe Comexio als Haussteuerung und die API nimmt http requests entgegen
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 10 November 2020, 15:58:44
Poste doch bitte besser lists der Devices statt ScreenShots!


list Grilllicht



list html_aufruf


Und dann hier in "code-Tags" (das '#' im "Menü") posten.

Ich denke es fehlt das Attribut "setList on off" beim dummy...


attr Grilllicht setList on off


EDIT: wenn du den { GetHttpFile("...") } Aufruf in FhemWeb-cmd eingibst funktioniert das?

EDIT: kleine Anmerkung: der Aufruf GetHttpFile blockiert fhem. Wenn es immer schnell geht, mag das "egal" sein, ich wollte es nur anmerken! Es gibt auch nonblockingGet...

EDIT: die FUUID musst du nicht unkenntlich machen ;) Die ist nur eine fhem-interne eindeutige "Kennung" zur eindeutigen "Identifizierung" von Devices innerhalb DEINES fhem... Also nichts groß etwas wo jemand was damit anfangen oder "missbrauchen" könnte ;)

EDIT: beim notify sieht man sie ja auch ;)

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 10 November 2020, 16:15:00
Hi,

und danke.Hier die Ausgabe:
Internals:
   FUUID      5fa3ed86-f33f-b4c0-ae4b-31c170c434360afa
   NAME       Grilllicht
   NR         17
   STATE      off
   TYPE       dummy
   READINGS:
     2020-11-10 14:59:00   state           off
Attributes:
   alexaName  Licht Grill
   genericDeviceType switch
   setList    on off
   webCmd     on:off


und


Internals:
   DEF        Grillicht:on { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=40") }
   FUUID      5fa3f82b-f33f-b4c0-aa9f-30644ab9b3dbd9e4
   NAME       html_aufruf
   NR         18
   NTFY_ORDER 50-html_aufruf
   REGEXP     Grillicht:on
   STATE      active
   TYPE       notify
   READINGS:
     2020-11-10 12:33:17   state           active
Attributes:


code-tags sehe ich leider nicht.
wie gesagt  das {my $energyTotal = 80;;GetHttpFile("192.168.178.33", "/api/?action=set&ext=DimmerEG&io=Q2&value=$energyTotal")} geht
lg
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 10 November 2020, 17:14:27
Geht es jetzt mit setList?

Noch mal ein reload beim Alexa-Device gemacht?

EDIT: also wird der dummy per Sprache ein/aus geschaltet?

Code-Tags, wie ich geschrieben hatte: oben, oberhalb der Smilys im "Menü" das '#'...

Man kann den Beitrag auch nachträglich bearbeiten...

Noch mal zur Sicherheit: wenn du das hier

{ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=40") }

oben in das FhemWeb-cmd eingibst, funktioniert es?

Wie hast du das notify "erzeugt"?
Über den Eventmonitor?
Vermutlich nicht, weil: Grillicht != Grilllicht ;) so kann das notify nicht ausgelöst werden...
https://wiki.fhem.de/wiki/Event_monitor

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 10 November 2020, 20:40:26
Hi,
also Grillicht sieht nun so aus:

Internals:
   FUUID      5fa3ed86-f33f-b4c0-ae4b-31c170c434360afa
   NAME       Grilllicht
   NR         17
   STATE      on { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80") }
   TYPE       dummy
   READINGS:
     2020-11-10 19:33:03   state           on { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80") }
Attributes:
   alexaName  Licht Grill
   genericDeviceType light
   setList    on off
   webCmd     on:off


und das notify:
Internals:
   DEF        Grilllicht:.* set Grilllicht on { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80") }
   FUUID      5fa3f82b-f33f-b4c0-aa9f-30644ab9b3dbd9e4
   NAME       html_aufruf
   NOTIFYDEV  Grilllicht
   NR         18
   NTFY_ORDER 50-html_aufruf
   REGEXP     Grilllicht:.*
   STATE      2020-11-10 19:33:03
   TRIGGERTIME 1605036783.53043
   TYPE       notify
   READINGS:
     2020-11-10 19:22:38   state           active
Attributes:

Ich arbeite mit Alexa und wenn ich sage "Alexa schalte Licht Grill an" kommt folgendes im EventMonitor:

2020-11-10 19:32:34 dummy Grilllicht on
2020-11-10 19:32:34 dummy Grilllicht on { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80") }
2020-11-10 19:33:03 dummy Grilllicht on
2020-11-10 19:33:03 dummy Grilllicht on { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80") }


Das Licht geht aber nicht an. Wenn ich  aber { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80") } in fhem eingebe geht die Lampe an.


Den Hash sehe ich nicht. Neben dem Smiley ist nur ein + symbol indem ein leeres Fenster aufploppt.

Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 10 November 2020, 20:55:03
Oberhalb der Smilys ist eine "Menü-Leiste" mit "Icons" und da ist ein '#' zu finden...
Neben der Möglichkeit andere Formatierungen wie Schriftgröße etc. einzustellen.

So ist es nicht wirklich lesbar...

Und ob beim dummy das Licht an geht, er also per Sprache ein/aus geschaltet wird hast du nicht beantwortet...

Steht etwas im fhem-Log?

Hast du das notify mal per Eventmonitor anlegen lassen?

EDIT: warum hast du plötzlich das notify komplett "umgebaut"!!? Ins notify gehört NUR der Aufruf von der API-url genauso wie es vorher war? Und genauso wie es in fhemWeb funktioniert! Also KEIN set dummy on!!! Weil wozu das!? Der dummy wird per Sprache gesteuert und das notify reagiert darauf und schaltet dann per Api-Aufruf das "echte" Licht. Und ob der dummy noch passt sehe ich, wenn das list besser lesbar ist...

EDIT: das notify also so wie aus dem Sreenshot. Und den dummy nur mit zusätzlich setList. So wie ich geschrieben hatte! Und dann eben testen, ob der dummy schaltet... Und nicht einfach wild alles umbauen. So ist helfen nicht "lustig"... ;)

EDIT: bitte in die fhem-Grundlagen einlesen. Und auch bzgl. Events und notify etc.

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 11 November 2020, 22:11:59
Hi,

danke erstmal für die Tipps on und off gehen nun.
Den Hash habe ich immer noch nicht gefunden, meine Oberfläche sieht wie im Anhang aus.
Den notify habe ich nach deinen Tipp mal mit dem Eventmonitor angelegt, deshalb sah der anders aus. Nachdem ich diesen mit den alten notify abgeglichen habe ging nun ein Schaltvorgang, was mich sehr glücklich macht. Auch mit Alexa ging es.*jubel*
Was ich nun noch dringend brauche ist das Dimmen, da habe ich keine Ahnung wie ich das intensity.percent aus dem http call in einem Notify unterbringe. Ist das vielleicht mit den setlist on off pct ?

Noch etwas was mich nicht so hübsch ist, ist das ich für jeden on off und jedes Gerät ein notify gerade anlege. Ich habe gesehen das man auch Funktionen definieren kann, aber mir würde auch 1 notify mit pipes genügen. Dann wäre es eins für jedes Gerät. Gibt es sowas?
mfg
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 11 November 2020, 22:18:28
Von welchem "hash" sprichst du immer?

Was soll mir dein Bild zeigen?

Ja, es geht nat. ein notify pro Gerät/Device.
Du kannst $EVENT mittels if/elsif "auswerten" und dann entsprechend den passenden Http-Request absetzen. Würde ich aber dann in eine Sub in myUtils auslagern...
https://wiki.fhem.de/wiki/99_myUtils_anlegen

Was auch geht: DOIF statt notify mit if/elsif. Da kann ich aber nicht helfen...

Ich werde morgen mal versuchen was zu posten...

Bzgl. dim kann ich auch mal schauen.

Bin grad nur "mobil"...

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 11 November 2020, 22:28:43
Hi,

ich meine die Raute "#" von der du sprachst.
Danke nochmal für deine Mühen, weiß ich wirklich zu schätzen.
Ich schaue mir derweilen die myutils an.

lg
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 11 November 2020, 22:44:56
Welchen Browser hast du?
Wie schreibst du hier im Forum?

Also bei mir sind oberhalb "dieses Tipp-Fensters" wo ich meinen Text eintrage Smileys und da drüber eben einige Icons/Buttons um z.B. die Schriftfarbe, Schriftart zu ändern etc. und genau da gibt es die Möglichkeit "Code" einzufügen ('#') oder auch Zitate etc.

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 12 November 2020, 16:13:27
Hi,

also ich bin inzwisch ein gutes Stück weiter und kurz vor dem Ziel. Habe nun ein DOIF welches an und aus macht. Das Dimm-Kommando kommt ebenfalls an. Allerdings mit dem Eventinhalt "value 60" (60 sind nur ein Beispiel) . Ich möchte aber dass er mir 60 zurückliefert. Habe schon ein split versucht und $EVTNUM1 aber beides geht nicht. So sieht es nun aus:

Internals:
   DEF        ([Wonhzimmerlicht] eq "on") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80")}) DOELSEIF ([Wonhzimmerlicht] eq "off") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=0")}) DOELSE ({my $eve = $EVENT;; GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=$eve")})
   FUUID      5fad120a-f33f-b4c0-a49c-01e82898e5b664db
   MODEL      FHEM
   NAME       Wonhzimmerlicht.DOIF
   NOTIFYDEV  Wonhzimmerlicht,global
   NR         21
   NTFY_ORDER 50-Wonhzimmerlicht.DOIF
   STATE      initialized
   TYPE       DOIF
   VERSION    22913 2020-10-04 21:46:02
   READINGS:
     2020-11-12 15:09:58   cmd             0
     2020-11-12 15:09:58   mode            enabled
     2020-11-12 15:09:58   state           initialized
   Regex:
     accu:
     cond:
       Wonhzimmerlicht:
         0:
           &STATE     ^Wonhzimmerlicht$
         1:
           &STATE     ^Wonhzimmerlicht$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Wonhzimmerlicht','STATE') eq "on"
     1          ::InternalDoIf($hash,'Wonhzimmerlicht','STATE') eq "off"
   do:
     0:
       0          { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80")}
     1:
       0          { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=0")}
     2:
       0          {my $eve = $EVENT;; GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=$eve")}
   helper:
     DEVFILTER  ^global$|^Wonhzimmerlicht$
     NOTIFYDEV  global|Wonhzimmerlicht
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     all         Wonhzimmerlicht:STATE
   uiState:
   uiTable:
Attributes:


weiß jemand wie ich die nur die 60 aus dem Event erhalte?
mfg
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 12 November 2020, 16:48:27
Freut mich, dass du selber weiter gekommen bist! :)

Leider kann ich bei DOIF nicht wirklich helfen, sorry...

Es gibt bei Abfrage von Readings bei DOIF wohl die Möglichkeit ein :d (also Doppelpunkt und d) dahinter zu schreiben...
Dann wird nur der Zahlenwert zurückgegeben (denke ich).

Ansonsten gibt es noch: ReadingsNum("DeviceName","ReadingName",0) dabei wird nur der Zahlenwert zurückgegeben...

Aber vermutlich ist was am homebridgeMapping "verkehrt" (hast du eins?).

Poste doch mal ein list von Wohnzimmerlicht...

Man kann bestimmt dafür sorgen, dass von alexa-fhem nur die Zahl gesetzt wird.

Wie geschrieben: mehr kann ich bzgl. DOIF nicht helfen...

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 12 November 2020, 19:26:16
Hi,

hier ist das listing vom Wohnzimmerlicht:

Internals:
   FUUID      5fac3036-f33f-b4c0-1316-78f4e43386062e58
   NAME       Wonhzimmerlicht
   NR         19
   STATE      value 72
   TYPE       dummy
   READINGS:
     2020-11-12 15:15:44   state           value 72
Attributes:
   alexaName  Wohnlicht
   genericDeviceType light
   homebridgeMapping Brightness=state,cmd=
   setList    value:slider,0,1,100 on off
   webCmd     on:off:value
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: justme1968 am 12 November 2020, 19:36:22
du hast readingList nicht gesetzt.
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 12 November 2020, 19:56:17
Hallo,
ok, readingsList kenne ich noch nicht, muss ich mir mal ansehen.
Ich habe derweil den Wert dezimal herraus bekommen, das :d hat zumindest den Wert eingefügt, siehe hier:
Internals:
   DEF        ([Wonhzimmerlicht] eq "on") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80")}) DOELSEIF ([Wonhzimmerlicht] eq "off") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=0")}) DOELSE (
{ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=[Wonhzimmerlicht:state:d]") } )
   FUUID      5fad120a-f33f-b4c0-a49c-01e82898e5b664db
   MODEL      FHEM
   NAME       Wonhzimmerlicht.DOIF
   NOTIFYDEV  global,Wonhzimmerlicht
   NR         21
   NTFY_ORDER 50-Wonhzimmerlicht.DOIF
   STATE      cmd_3
   TYPE       DOIF
   VERSION    22913 2020-10-04 21:46:02
   READINGS:
     2020-11-12 18:50:25   Device          Wonhzimmerlicht
     2020-11-12 18:50:23   cmd             3
     2020-11-12 18:50:23   cmd_event       Wonhzimmerlicht
     2020-11-12 18:50:23   cmd_nr          3
     2020-11-12 18:50:25   e_Wonhzimmerlicht_STATE value 17
     2020-11-12 18:50:23   error           { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=100") }: 1
     2020-11-12 18:41:58   mode            enabled
     2020-11-12 18:50:23   state           cmd_3
   Regex:
     accu:
     cond:
       Wonhzimmerlicht:
         0:
           &STATE     ^Wonhzimmerlicht$
         1:
           &STATE     ^Wonhzimmerlicht$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Wonhzimmerlicht','STATE') eq "on"
     1          ::InternalDoIf($hash,'Wonhzimmerlicht','STATE') eq "off"
   do:
     0:
       0          { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80")}
     1:
       0          { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=0")}
     2:
       0           { GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=[Wonhzimmerlicht:state:d]") }
   helper:
     DEVFILTER  ^global$|^Wonhzimmerlicht$
     NOTIFYDEV  global|Wonhzimmerlicht
     event      value 17
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Wonhzimmerlicht
     timerevent value 17
     triggerDev Wonhzimmerlicht
     timerevents:
       value 17
     timereventsState:
       state: value 17
     triggerEvents:
       value 17
     triggerEventsState:
       state: value 17
   internals:
     all         Wonhzimmerlicht:STATE
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:


Problem ist jetzt nur das der Slider auf den Wert gesetzt wird, der Befehl aber nicht direkt abgeschickt wird, ich muss erst auf "value <WERT>" klicken (neben "on" "off") dann wird der Eingestellte Befehl geschickt. Ich fürchte der Slide ist das falsche mittel... Gibt es eine Alternative, welche direkt den eingestellen Wert schickt?
Zudem kennt Alexa den Slider auch nicht, nur on und off.
mfg
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 12 November 2020, 20:16:09
...achso der Slider wird von Alexa schon erkannt. Musste das Device nur löschen und wieder neu suchen lassen.
Interessant ist nun, daß wenn ich die Lampen auf off stelle und sie dann aus sind ich einmalig "Alexa schalte Lampe auf 80 Prozent" stellen kann. Dann wird die Lampe auf 80% gestellt. Alle Sprachbefehle danach schalten die Lampe dann nicht mehr mit Wert. Erst wenn ich die Lampe wieder auf off setzte  kann ich wieder ein Sprachbefehl absetzten.
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 12 November 2020, 20:48:43
Also der Slider funktioniert nur mit stateänderungen. Dh. ich muss immer einen Lampenwert setzten, dann Lampe aus, dann Lampe Wert setzen usw. damit ich verschiedene Helligkeiten bekomme. Würde es gerne direkt haben ohne das Ausschalten....
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: justme1968 am 12 November 2020, 21:11:17
nicht alles auf einmal machen.

zuerst das device in fhemweb komplett zum laufen bekommen.. inklusive slider, STATE, icon webCmd.

dann die http steuerung. dann alexa.

solange schritt 1 nicht komplett geht ist es sinnlos mit 2. und 3. anzufangen.
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 12 November 2020, 21:37:17
...ich habe die anderen Schritte getestet um die Ursache zu finden. Anscheinend braucht das ganze einen Statechange um zu funktionieren. Also von zbsp on -> on passiert nichts genauso von slider -> slider. Wenn ich von on-> slider gehe funktionierts, auch off->slider geht. Aber wenn ich einen Sliderwert setzte und danach einen anderen Sliderwert, passiert nichts. Erst wenn ich on oder off drücke und danach wieder "slide" geht es einmal.
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: TomLee am 12 November 2020, 22:29:35
Zitatdu hast readingList nicht gesetzt.

Hast du das jetzt mal versucht ?
Zitat
ok, readingsList kenne ich noch nicht, muss ich mir mal ansehen.

Du willst oben in dem DOIF in $EVENT nur den numerischen Wert.
Falls das noch unklar sein sollte, dazu ist einfach nur ein attr Wonhzimmerlicht readingList value nötig, dann landet nur der Wert in state.

ZitatAlso von zbsp on -> on passiert nichts genauso von slider -> slider. Wenn ich von on-> slider gehe funktionierts, auch off->slider geht. Aber wenn ich einen Sliderwert setzte und danach einen anderen Sliderwert, passiert nichts. Erst wenn ich on oder off drücke und danach wieder "slide" geht es einmal.

Weiß nicht genau aber denke es muss doch das Attribut do always im DOIF gesetzt werden ?

Gruß

Thomas
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 12 November 2020, 22:33:23
Kommen denn Events, also auch bei on -> on?

Siehe Eventmonitor...

Kann man bestimmt bei DOIF einstellen.
Da gibt es so viele Attribute: do always / repeatcmd usw.

Also falls es das DOIF ist was du meinst, dass nicht "geht"...

Aber wie geschrieben: bei DOIF bin ich raus.

Die Mischung von "Projektieren/Konfigurieren" und "Programmieren" ist mir zu hoch... ;)

Ich nehme lieber ein simples notify und programmiere...
Da ist MIR dann klar was passiert und was ich passieren lassen will... :)

Bei DOIF ein Attribut geändert etc. und das ganze "Konstrukt" verhält sich anders...

Aber: jeder wie er will und kann ;)

Gruß, Joachim
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: apohero am 13 November 2020, 20:05:32
Hallo zusammen,

jaaa das war der letzte wichtige Schritt zum glücklichen Vollendung do always führt den Befehl immer aus.
Hier der fertige RAW Code für alle die ihre Schalter per Http Request schalten wollen und auch dimmen:

Device:
defmod Wohnzimmerlicht dummy
attr Wohnzimmerlicht alexaName Licht Wohnzimmer
attr Wohnzimmerlicht genericDeviceType light
attr Wohnzimmerlicht homebridgeMapping Brightness=state,cmd=
attr Wohnzimmerlicht setList pct:slider,0,1,100 on off
attr Wohnzimmerlicht webCmd pct


Das dazugehörige DOIF
defmod Wohnzimmerlicht.DOIF DOIF ([Wohnzimmerlicht] eq "on") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80")}) DOELSEIF ([Wohnzimmerlicht] eq "off") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=0")}) DOELSE ( \
{ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=[Wohnzimmerlicht:state:d]")})
attr Wohnzimmerlicht.DOIF do always


Großen großen Dank an MadMax und alle anderen die mir geholfen haben. Ihr seid TOP!!!!!
Titel: Antw:Fhem , Alexa für Anfänger
Beitrag von: MadMax-FHEM am 13 November 2020, 20:29:20
Gerne.

Dann pappe doch bitte vorne beim ersten Post ein [gelöst] o.ä. dran, danke.

Viel Spaß noch, Joachim
Titel: Antw:[gelöst] Fhem , Alexa für Anfänger
Beitrag von: TomLee am 14 November 2020, 16:13:10
Wenn man sich den dummy sparen wollte, wärs auch möglich das ganze nur über das DOIF umzusetzen.

So meine ich könnte das klappen:

defmod Wohnzimmerlicht.DOIF DOIF ($SELF eq "on") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=80")}) DOELSEIF\
($SELF eq "off") ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=0")}) DOELSEIF\
([$SELF:pct,"0"]) ({ GetHttpFile("192.168.178.111", "/api/?action=set&ext=DimmerEG&io=Q2&value=[$SELF:pct]")})
attr Wohnzimmerlicht.DOIF alexaName aprikose
attr Wohnzimmerlicht.DOIF cmdState on|off
attr Wohnzimmerlicht.DOIF do always
attr Wohnzimmerlicht.DOIF genericDeviceType light
attr Wohnzimmerlicht.DOIF readingList pct
attr Wohnzimmerlicht.DOIF room Test
attr Wohnzimmerlicht.DOIF setList on\
off\
pct:slider,0,1,100
attr Wohnzimmerlicht.DOIF webCmd pct


Was hier noch nicht passt ist der Status des Button in der App, der stellt sich immer wieder auf AN nachdem man ausgeschaltet hat.
Nimmt man das pct:slider,0,1,100 aus der setList passt der Status, vlt hat wer ja eine Idee wie man setList korrekt definieren müsste (oder einfach nicht die App öffnen  :P)


Gruß

Thomas