Autor Thema: Perl - Modul 10_RHASSPY.pm "professionalisieren"  (Gelesen 10066 mal)

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #30 am: 19 Februar 2021, 17:30:23 »
RHASSPY: [Rhasspy] Parse (MQTT2_CLIENT : 'rhasspyMQTT2'): Msg: hermes/intent/de.fhem_SetOnOff => {"input": "lampe wohnzimmer an", "intent": {"intentName": "de.fhem:SetOnOff", "confidenceScore": 1.0}, "siteId": "wohnzimmer", "id": null, "slots": [{"entity": "de.fhem.Device", "value": {"kind": "Unknown", "value": "lampe"}, "slotName": "Device", "rawValue": "lampe", "confidence": 1.0, "range": {"start": 0, "end": 5, "rawStart": 0, "rawEnd": 5}}, {"entity": "de.fhem.Room", "value": {"kind": "Unknown", "value": "wohnzimmer"}, "slotName": "Room", "rawValue": "wohnzimmer", "confidence": 1.0, "range": {"start": 6, "end": 16, "rawStart": 6, "rawEnd": 16}}, {"entity": "OnOffValue", "value": {"kind": "Unknown", "value": "an"}, "slotName": "Value", "rawValue": "ein", "confidence": 1.0, "range": {"start": 17, "end": 19, "rawStart": 17, "rawEnd": 20}}], "sessionId": "wohnzimmer-snowboy-36079a54-2f9f-4f14-a4c0-294511c4c5e6", "customData": null, "asrTokens": [[{"value": "lampe", "confidence": 1.0, "rangeStart": 0, "rangeEnd": 5, "time": null}, {"value": "wohnzimmer", "confidence": 1.0, "rangeStart": 6, "rangeEnd": 16, "time": null}, {"value": "an", "confidence": 1.0, "rangeStart": 17, "rangeEnd": 19, "time": null}]], "asrConfidence": null, "rawInput": "lampe wohnzimmer ein", "wakewordId": "snowboy", "lang": null}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14272
  • "Developer"?!? Meistens doch eher "User"
Antw:Perl - Umlaute mit lc
« Antwort #31 am: 19 Februar 2021, 17:48:23 »
Hmm, kommt aus #499 von M2C...

Eher schwierig zu ändern... Wenn es sein müßte, könnte man nur die Umkehr-Anweisung absetzen, bevor man onmessage aufruft. Die Frage ist aber, ob das lohnt, denn eigentlich steckt die Info dann ja nochmal in der Payload. Von daher wäre eher die Frage, ob man es von da nimmt?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #32 am: 19 Februar 2021, 17:53:23 »
Von daher wäre eher die Frage, ob man es von da nimmt?

Verstehe ich nicht. Von wo soll man's nehmen?

Wir könnten auch einfach die Intent-Namen umbauen. Der Grund für den Doppelpunkt war beim Snips-Modul, dass man Snips-Intents von FHEM-Intents unterscheiden konnte. FHEM behandelt nur die mit Doppelpunkt. Das doofe ist, so ein Unterstrich ist halt sehr verbreitet. Und ich kann mir die Anfragen schon vorstellen, warum der Intent jetzt von Rhasspy und FHEM gleichzeitig angenommen wurde.

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #33 am: 19 Februar 2021, 17:57:30 »
Die gute Nachricht ist, wenn ich in RHASSPY_onmessage die Doppelpunkt durch Unterstriche ersetze, scheint das ganz gut zu funktionieren.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14272
  • "Developer"?!? Meistens doch eher "User"
Antw:Perl - Umlaute mit lc
« Antwort #34 am: 19 Februar 2021, 18:00:38 »
[hat sich weitestgehend erledigt, selber Gedanke]
Da habe ich jetzt Schwierigkeiten, den Hintergrund zu verstehen. Unterscheiden sich Sende- und Empfangsrichtung nur dadurch, dass "snips" den Doppelpunkt im Topic verwendet und FHEM den "_"? Das wäre in der Tat schwierig.

Sonst habe ich nur das Problem gefunden, dass die Weiterverarbeitung nicht läuft mangels match im Topic.

Beiseitigt die beigefügte Version dieses Problem?
« Letzte Änderung: 24 Februar 2021, 08:00:13 von Beta-User »
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #35 am: 19 Februar 2021, 18:08:09 »
Nun, möchte man Intents von Rhasspy/Snips selbst intepretieren lassen (für z.B. Sachen, mit denen FHEM nichts zu tun hat), muss man irgendwie unterscheiden, welche Intents für Rhasspy und welche für FHEM sind. Die beiden abonnieren ja das selbe Topic (hermes/intent/+). Deswegen hat das Snips-Modul nur Intents mit Doppelpunkt verarbeitet. Alle anderen hat Snips (die Python Software) verarbeitet.
Mit Sende-/Empfangsrichtung hat das nichts zu tun. Geht nur um's Empfangen.

Die neue Version "behebt" das Problem, ja.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14272
  • "Developer"?!? Meistens doch eher "User"
Antw:Perl - Umlaute mit lc
« Antwort #36 am: 19 Februar 2021, 18:14:14 »
Ginge das nicht akkurater über "..[.]fhem[:_]"?

(Tappe da aber ziemlich im Nebel, nicht allzu ernst nehmen...)
Jedenfalls wollte Rudi den Doppelpunkt nicht (und ich selbst finde allgemein Sonderzeichen im Topic nicht gut).

Haben wir denn jetzt ein erntshaftes Problem oder eher nicht?

(Allg. Anmerkung noch: diese hart vercodeten Topics finde ich seltsam, aber vermutlich geht das nur mir so...?)


Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #37 am: 19 Februar 2021, 18:25:04 »
Könnte man natürlich so auch machen. Das "fhem" alleine sollte ja reichen. Das in Rhasspy zu ändern (also den Doppelpunkt rausnehmen) ist überhaupt kein Problem. Verstehe Rudis Ansicht vollkommen. Somit haben wir kein Problem :)

Das einzige Problem ist, dass die von dir verwendete Modul-Version nicht mehr die aktuellste war. Jetzt muss ich irgendwie rausfinden, wie ich das in GitHub richtig mergen kann ;)

Wie meinst du hart vercodeten Topics? Die drei @topics?

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #38 am: 19 Februar 2021, 18:47:40 »
Mein Hirn versagt gerade, brauche nochmal deine Hilfe.

qr/^hermes\/intent\/.*[:_]/filtert ja brav den Intent-Namen "de.fhem:GetTime"

Wie müsste es bei "de.fhem.GetTime" (ohne Doppelpunkt) heißen, wenn ich auf ".fhem." filtern will? Oder von mir aus "_fhem_" weil der Punkt in Regexen ja wieder schwierig ist?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14272
  • "Developer"?!? Meistens doch eher "User"
Antw:Perl - Umlaute mit lc
« Antwort #39 am: 20 Februar 2021, 07:35:24 »
...sollte normales regex sein. Mit sowas sollten sich alle Fälle erschlagen lassen:
qr/^hermes\/intent\/.*[._]fhem[.:_]/Details siehe regex101.com.

Dann warte ich jetzt mal, bis du alles auf Stand hast.

Vermutlich ist es einfacher, ein diff zu erzeugen zwischen deiner github-Version und deiner aktuellsten und diesen dann in diese Fassung hier einzuarbeiten.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #40 am: 20 Februar 2021, 07:49:53 »
Ja, hätte ich auch geglaubt. Tut aber leider nicht.

Egal, ich führ das alles mal zusammen und kümmer mich dann darum.

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #41 am: 20 Februar 2021, 09:01:33 »
https://github.com/drhirn/fhem-rhasspy/blob/testing/10_RHASSPY.pm

Das sieht jetzt mal sehr gut aus. Funktioniert soweit alles.
Was mir aber auffällt: Sobald ich das Rhasspy-Device definiere, aktualisiert sich FHEMWEB nicht mehr automatisch. Muss immer auf F5 drücken, um die aktuellen Readings/States/etc. zu sehen. Kennst du das Problem?
Informativ Informativ x 1 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14272
  • "Developer"?!? Meistens doch eher "User"
Antw:Perl - Umlaute mit lc
« Antwort #42 am: 20 Februar 2021, 11:53:10 »
Keine Idee, was das für Einflüsse auf FHEMWEB haben könnte. Betrifft das nur das RHASSPY-Device oder allgemein? (Wenn ersteres: kann sein, dass da manche Readings nur aktualisiert werden, wenn MQTT als IO verwendet wird).

Ansonsten sollte es eher mit etwas anderem zu tun haben.




Mit "harten" topics war @topics gemeint, ja. Ist das immer richtig?


Generell: War das ein Startschuss in Richtung "bau 00_MQTT aus..."?
Vermutlich sollte man erst noch etwas testen, ich würde da noch etwas abwarten.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #43 am: 20 Februar 2021, 12:27:08 »
Keine Idee, was das für Einflüsse auf FHEMWEB haben könnte. Betrifft das nur das RHASSPY-Device oder allgemein? (Wenn ersteres: kann sein, dass da manche Readings nur aktualisiert werden, wenn MQTT als IO verwendet wird).

Es ist definitiv das Rhasspy-Device schuld. Sobald ich das lösche, ist alles wieder normal.
Betrifft nicht nur Readings aus dem Rhasspy-Device, sondern alle anderen Devices auch. Irgendwas scheint das Longpolling/Websocket zu stören.
Passiert seit unseren Änderungen gestern.

Die @topics sind immer richtig, ja.

00_MQTT können wir schon ausbauen. Die 4 User, die das Modul verwenden haben ja noch die master-Branch zur Verfügung.

Offline drhirn

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1583
Antw:Perl - Umlaute mit lc
« Antwort #44 am: 20 Februar 2021, 12:31:06 »
Die Branch 0.2.0 ist übrigens die aktuelle MQTT2_DEVICE Branch