[39_TEERKO.pm] Neues Modul zur textbasierten Steuerung

Begonnen von tiroso, 01 Juni 2017, 08:23:51

Vorheriges Thema - Nächstes Thema

Schlimbo

Hallo Tiroso,
habe dein Modul gerade upgedatet.
Leider kann ich jetzt meine Lichter nicht mehr schalten.

hier ein Liste von TEERKO:
Internals:
   CFGFN     
   MODE_own___ 0
   NAME       myTEERKO
   NR         2969
   NTFY_ORDER 50-myTEERKO
   STATE      ???
   TYPE       TEERKO
   READINGS:
     2018-01-08 18:55:07   Answer          Ich konnte lichtnicht im Raum Wohnzimmerfinden.
     2018-01-08 15:39:32   MAX_Tuerschloss_battery ok
     2018-01-08 16:51:40   Wohnzimmer_Hzg_oben_battery ok
     2018-01-08 18:55:05   command         receiveVoiceCommand: schalte das wohnzimmer licht aus
Attributes:
   TEERKOFeatures -Alle-
   room       Global
   verbose    5

Der Befehl: "schalte das wohnzimmer licht aus" wurde richtig übergeben.
Die Antwort sieht schon etwas seltsam aus: "Ich konnte lichtnicht im Raum Wohnzimmerfinden" (Hier fehlen zwei Leerzeichen).
Hier ein List vom Licht, dass ich schalten möchte:
Internals:
   CHANGED   
   DEF        group 1  IODev=hueBridge1
   ID         G1
   INTERVAL   
   IODev      hueBridge1
   NAME       HUEWohnzimmer
   NR         537
   STATE      on
   TYPE       HUEDevice
   desired    1
   lights     1,2,3
   name       Wohnzimmer Group
   type       LightGroup
   READINGS:
     2018-01-08 14:51:45   alert           none
     2018-01-08 16:06:36   all_on          1
     2018-01-08 16:06:36   any_on          1
     2018-01-08 17:31:38   bri             11
     2018-01-08 14:51:45   colormode       xy
     2018-01-08 14:51:45   ct              467 (2141K)
     2018-01-08 14:51:45   effect          none
     2018-01-08 14:51:45   hue             13123
     2018-01-08 16:06:36   onoff           1
     2018-01-08 17:31:38   pct             5
     2018-01-08 14:51:45   sat             212
     2018-01-08 14:51:45   xy              0.5125,0.4149
   helper:
     alert      none
     bri        11
     colormode  xy
     ct         467 (2141K)
     devtype    G
     effect     none
     hue        13123
     onoff      1
     pct        5
     sat        212
     update_timeout 1
     xy         0.5125,0.4149
Attributes:
   IODev      hueBridge1
   alexaName  Licht
   alexaRoom  wohnzimmer
   alias      Wohnzimmer Licht
   color-icons 2
   createActionReadings 1
   delayedUpdate 1
   devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
   event-on-change-reading .*
   genericDeviceType light
   group      HUEGroup
   room       HUEDevice,alexa
   stateFormat {(ReadingsVal($name, 'all_on', '0') == 1)?"on":"off"}

Da im ersten Post steht:
ZitatVerwenden bestehender Attribute wie alias,room,alexaname,alexaroom. Somit muss nicht zwingend die TEERKO eigenen Attribute verwendet werden
habe ich die TEERKO Attribute nicht gesetzt, da ja schon ALEXA Attribute vorhanden sind.

Im Anhang noch das komplette Logfile mit Verbose 5.

Habe ich hier noch etwas falsch konfiguriert, oder stimmt im Modul noch etwas nicht?
Gruß Schlimbo

tiroso

#136
Danke dir.
Ich werde heute abend noch reinsehen.

Vielleicht lese ich nur alexaName nicht richtig ein.
Aber auf die schnelle (auf dem Handy)ist mir aufgefallen das du receiveVoiceCommand mit in das TeerkoDevice eingebracht hast. Hat jetzt nichts mit dem Fehler zu tun. Aber das muss nicht mit darein.

EDIT:
Kannst du mir einen Gefallen tun und folgende Teerko einspielen?

Das ist die beta 1.2 mit einem zusätzlichen Dump.
Nach einspielen Fhem neustarten(shutdown restart) und genau den gleichen Befehl nochmal eingeben...und nochmal den Log Part einstellen.

Schlimbo

Stimmt da war mein Notify nicht ganz korrekt.
Danke für den Hinweis hab's geändert.

tiroso

#138
Kannst du mir einen Gefallen tun und folgende Teerko einspielen?

Das ist die beta 1.2 mit einem zusätzlichen Dump.
Nach einspielen Fhem neustarten(shutdown restart) und genau den gleichen Befehl nochmal eingeben...und nochmal den Log Part einstellen.

Schlimbo

Klar, gerne.
Hier das List:
Internals:
   MODE_own___ 0
   NAME       myTEERKO
   NR         676
   NTFY_ORDER 50-myTEERKO
   STATE      ???
   TYPE       TEERKO
   globalinit 1
   READINGS:
     2018-01-08 20:49:57   Answer          Das Gerät licht scheint es in dem von dir gewünschten Raum nicht zu geben. Das Gerät licht scheint es in dem von dir gewünschten Raum nicht zu geben.
     2018-01-08 20:49:55   command         schalte das wohnzimmer licht aus
Attributes:
   TEERKOFeatures BasicControl,UserDefinedCommands
   room       Global
   verbose    5


Und im Anhang das Log.

tiroso

#140
Ich glaube ich habe den Fehler gefunden.

Es lag daran das ich immer mit Favoriten Rooms arbeite. und wenn keiner vorhanden ist wird auch nicht abgeglichen... "BlaBla über Modul..." Zusammengefasst sollte es klappen ^^

Schlimbo

Geht leider immer noch nicht.
Kannst du die Datei noch mal checken, hat nämlich noch die gleiche Uhrzeit wie die vorherige Datei (20:26:14)

tiroso

#142
Ich hoffe das ich das diesmal richtig gemacht habe.


Ich habe versucht genau das gleich device als dummy abzubilden. Mit den gleichen Attributen. Bei mir scheint es zu klappen.
Ich würde noch einmal gerne das log nachdem du das eingespielt hast...

Und falls das nicht klappt...ja dann muss ich nochmal genauer nachdenken.  :-\

Schlimbo

2018-01-08 22:14:01   Answer          Das Gerät Licht darf ich nicht kontrollieren. Kontrolliere das Attribute TEERKOAllowedToControl ob das Gerät dort vorhanden ist.
Jetzt kommen wir der Sache näher. Nach setzten von TEERKOAllowedToControl kann ich das Licht auch steuern. :)
Vielen Dank.

tiroso

Super!!!

Das freut mich. Denk dran verbose wieder auf 3 zu setzen. Teerko "schreibt" sonst unglaublich viel

Schlimbo

Wie ist bei den ganzen Aliasse (Alias,AlexaName,TEERKOName) eigentlich die Rangfolge?
Was passiert zum Beispiel, wenn diese an einem Device alle mit unterschiedlichen Namen gesetzt sind?
Werden dann alle ausgewertet oder nur TEERKOName?

tiroso

#146
Es gibt keine Reihenfolge. Es werden alle Aliase abgeglichen.

Wenn du ein Device hast was im alexaNamen Stehlampe, im alias Deckenlampe und im TEERKOAlias Tischlampe stehen hat dann kannst du das Device über jeden Namen ansprechen. Deswegen gebe ich auch die Möglichkeit unter TEERKOAlias kommasepariert alle aliase anzugeben.

Den einzigen Vorteil den es hat TEERKOAlias zu nehmen ist das du Favoriten anlegen kannst.
attr teerko TEERKORoom Haus,Erdgeschoss,!Wohnzimmer
attr teerko TEERKOAlias Lampe,Licht,!Deckenlampe


Befehl: Schalte die Lampe im Erdgeschoss an
Anwtort: Ich habe die Deckenlampe im Wohnzimmer eingeschaltet

Und wenn ein anderes Device die gleichen Namen und den gleichen Raum hat...dann musst du eben alle Ansprechen ;)
Schalte alle Lampen im Erdgeschoss aus z.B.

EDIT:
Achja...Der Devicealias Wohnzimmer Lampe ist ungünstig gewählt. Wohnzimmerlampe eher.
Wohnzimmer seperat wird als Örtlichkeit erkannt. Wohnzimmerlampe als Alias. Das habe ich so in der Logik drin. Sprich bei dir wird das alias Wohnzimmer Lampe niemals matchen.

Schlimbo

Zitat von: tiroso am 08 Januar 2018, 23:19:53
Achja...Der Devicealias Wohnzimmer Lampe ist ungünstig gewählt. Wohnzimmerlampe eher.
Wohnzimmer seperat wird als Örtlichkeit erkannt. Wohnzimmerlampe als Alias. Das habe ich so in der Logik drin. Sprich bei dir wird das alias Wohnzimmer Lampe niemals matchen.
Das Alias ist bei mir nur für die bessere Lesbarkeit im Webinterface gesetzt, deswegen ist hier auch immer Örtlichkeit und Name enthalten, aus diesem Grund ist es dann auch nicht schlimm, wenn das nie matched.

Schlimbo

Ist es eigentlich auch möglich dem TEERKO Device einen default Raum zuzuordnen, um hierdurch bei einer nicht vorhandenen Ortsangabe im Befehlssatz, den im Device hinterlegten Raum zu verwenden.
So könnte man für jeden Raum ein TEERKO Device anlegen und dann beim ansprechen eines Gerätes, im selben Raum, die Ortsangabe weglassen.
z.B: "Schalte das Licht an".

tiroso

Ich habe vor...allerdings dauert es noch was...Das man Teerko sagen kann das er sich einen Raum merken soll oder man diesen Raum manuell setzen kann (notify/bewegungsmelder/o.ä.).

Dann müsste man den ersten Befehl mit Ortsangabe starten (Schalte das Licht im Wohnzimmer an). Teerko merkt sich Wohnzimmer und sucht dann (Schalte das Licht aus) erstmal in den gemerkten Räumen bevor die normale Suche weitergeht.

Soweit der Plan