Modulentwicklung für Rhasspy Sprachassistent

Begonnen von drhirn, 11 März 2021, 15:59:50

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: Prof. Dr. Peter Henning am 20 Januar 2022, 16:25:45
Du meinst die Version vom 29.12. ?
Im Prinzip: Ja, wobei es danach noch ein reines "commandref-update" gab:
Zitat von: Beta-User am 06 Januar 2022, 05:57:36
@pah: Anbei auch die letzte Überarbeitung, bringt aber gg. der von neulich nur eine Beschreibung der neuen Attribute in der commandref.
Zitatgegen das "Sage Rhasspy" habe ich noch den Vorbehalt, dass dies eine Anleitung erfordert, wie man das auszusprechen hat.
Ok, mir war nicht klar, dass das schwieriger ist wie (das aber vermutlich schon vorhandene?) "Mycroft" ;D ...



Zwei andere Themen noch:
- zum einen gibt es "automagic" nicht mehr beim großen "g". Man kann es zwar noch von der Herstellerseite holen, aber das sieht mir nach einer Sackgasse aus (und verdirbt mir zumindest die Freude am Einrichten irgendwelcher Flows).

- zum anderen hat hier jemand was vorgestellt für TTS via IBM watson: https://community.rhasspy.org/t/simple-shell-script-to-use-watson-ibms-cloud-tts-service-in-rhasspy/3431. Allerdings muss ich zugeben, dass mich die Betonung des deutschen Beispielsatzes in https://www.ibm.com/demos/live/tts-demo/self-service/home nicht davon überzeugt hat, dass diese Lösung wirklich ein toller Ersatz für "08/15-Rhasspy-TTS" wäre...
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

dkreutz

Zitat von: Beta-User am 19 Januar 2022, 12:43:58
Das habe ich bisher nicht unbedingt so empfunden - die dortige Community scheint teils erhebliche Vorbehalte gegen jeglichen kommerziellen Mitbewerber zu haben.

Soweit das Mycroft betrifft, sollte man aber schon zwischen dem Unternehmen "Mycroft AI Inc.", das Hardware und "professionellen Support" anbietet und der Open-Source Software (https://github.com/MycroftAI) unterscheiden.

Mycroft KANN vollständig offline betrieben werden, wenn man entsprechend Abstriche bei TTS-Qualität, STT-Fehlerrate und Komfort (Setup, Device-Konfiguration, Skill-Settings) in Kauf nimmt.
Raspberry Pi3B+ (Bullseye) / JeeLink868v3c (LaCrosse), nanoCUL433 (a-culfw V1.24.02), HM-MOD-UART (1.4.1), TEK603, MapleCUL / diverse Sensoren/Sender/Aktoren von Technoline, Intertechno, Shelly, Homematic und MAX!, Froggit Wetterstation, Luftdaten.info / Autor des fhem-skill für Mycroft.ai

Gisbert

Hallo Jörg,

gibt es noch eine Weiterentwicklung des RHASSPY-Moduls? Fhem scheint noch keinen Download bereitzustellen, zumindest nicht, als ich letztens geschaut habe.

Das Modul funktioniert bei meinen Anwendungen problemlos und auch besser als Google Assistant, der immer mal wieder nach "Rollläden in deiner Nähe" sucht.

Das state sieht gelegentlich so aus, die Sprachbefehle funktionieren aber:
state
http://192.168.1.46:12101/api/intents: empty answer received


Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Beta-User

Zitat von: Gisbert am 13 Februar 2022, 09:55:00
Das Modul funktioniert bei meinen Anwendungen problemlos und auch besser als Google Assistant, der immer mal wieder nach "Rollläden in deiner Nähe" sucht.
:) Freut mich zu hören!

Zitat von: Gisbert am 13 Februar 2022, 09:55:00
gibt es noch eine Weiterentwicklung des RHASSPY-Moduls?
Es gibt nichts aktuelles im svn, aber ich bin an ein paar Kleinigkeiten dran, die man verbessern kann. Leider fehlt bisher weiter Rückmeldung zu den AMAD.*-Geschichten, das würde ich eigentlich gerne vorher abschließen, sonst muss ich die Doku ändern...

Zitat
Das state sieht gelegentlich so aus, die Sprachbefehle funktionieren aber:
Hmmm, sowas hat mich bisher nicht gestört, bin auch grade nicht sicher, ob das ein Hinweis auf eine mögliche Fehlfunktion ist.
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

#1144
Zitat von: Beta-User am 13 Februar 2022, 11:08:23
aber ich bin an ein paar Kleinigkeiten dran, die man verbessern kann. Leider fehlt bisher weiter Rückmeldung zu den AMAD.*-Geschichten, das würde ich eigentlich gerne vorher abschließen, sonst muss ich die Doku ändern...
...jetzt habe ich halt erst mal die Doku geändert...

Im Anhang ist mal folgendes "adressiert" (auch wenn ich bei den ganzen Diskussionen drumrum teilweise nicht sicher bin, ob das jetzt "so herum" eigentlich richtig ist):
Zitat von: Beta-User am 17 Februar 2022, 14:23:17
- "encode": (https://forum.fhem.de/index.php/topic,126088.0.html) Ersetzen von decode_json durch "nicht-transformative" Varianten (Test läuft bereits);
- Umstellung auf "setNotifyDev()";
- "auto-training": Ändert man relevante Attribute, soll Rhasspy relativ direkt die aktualisierten Infos automatisch erhalten (Idee von martinp876). code dazu ist am werden.

Der Zweite Punkt bedingt, dass _zwingend_ eine recht aktuelle fhem.pl erforderlich ist (max. 2-3 Wochen alt oder so).
Der dritte Punkt ist möglicherweise nicht funktional und nur bis zu dem Punkt getestet, dass zwei neue (versteckte) Readings angelegt werden, in denen stehen sollte, was Rhasspy "weiß".

Das update ist eher für Tester und Mitentwickler gedacht :) . "Normale Anwender", die bisher gut klargekommen sind, dürfen sich (außer einer etwas verbesserten Doku) keine großen Hoffnungen auf substantielle Verbesserungen machen (ist ja auch nicht zwingend nötig).
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Prof. Dr. Peter Henning

#1145
ZitatLeider fehlt bisher weiter Rückmeldung zu den AMAD.*-Geschichten, das würde ich eigentlich gerne vorher abschließen
Ich auch. Bin aber fremdgesteuert jetzt am Semesterende...

Ich habe die neue Modulversion mal in meinem Produktivsystem installiert (zitter...).

In dem Moment, wo ich versuche, das Attribut rhasspySTT zu setzen, kommt die Fehlermeldung, dass zuerst ein BabbleKey ins DEF gehöre - und dann wird die komplette Definition des Rhasspy-Devices gelöscht (inklusive aller mühsam gesetzten Attribute) :(

Log-Eintrag nur
ZitatPERL WARNING: Use of uninitialized value $siteId in concatenation (.) or string at /opt/fhem/FHEM/10_RHASSPY.pm line 1863.
2022.02.21 18:16:34 1: PERL WARNING: Use of uninitialized value $siteId in substitution (s///) at /opt/fhem/FHEM/10_RHASSPY.pm line 1864.
2022.02.21 18:16:34 1: PERL WARNING: Use of uninitialized value $siteId in lc at /opt/fhem/FHEM/10_RHASSPY.pm line 1866.
2022.02.21 18:18:34 1: Connection to Rhasspy base failed: read from http://192.168.0.115:12101 timed out

LG

pah

Beta-User

Zitat von: Prof. Dr. Peter Henning am 21 Februar 2022, 18:16:56
Ich auch. Bin aber fremdgesteuert jetzt am Semesterende...
Danke für den Versuch, volles Verständnis!

Zitat
In dem Moment, wo ich versuche, das Attribut rhasspySTT zu setzen, kommt die Fehlermeldung, dass zuerst ein BabbleKey ins DEF gehöre - und dann wird die komplette Definition des Rhasspy-Devices gelöscht (inklusive aller mühsam gesetzten Attribute) :(

Log-Eintrag nur
Hmm, seltsam, der Effekt scheint aus einer Interaktion mit Rhasspy zu kommen, jedenfalls sind die Warnings nur erklärlich, wenn irgendeine Message kam, (ohne siteId) und das hat eigentlich - zumindest auf den ersten Blick - nichts mit den Babble&Co-Einstellungen und -Attributen zu tun.

Im Testsystem (ohne Rhasspy dahinter) unter fhem.pl 25684 2022-02-15@Perl5.32.1 kann ich sowohl
- einen Teil der Keys in rhasspySTT setzen, die nichts mit Babble zu tun haben,
- eine korrekte Rückmeldung sehen, wenn ich den filterFromBabble setze ohne DEF-Eintrag und
- den Filter setzen, wenn der DEF-Eintrag vorhanden ist.
Das sieht also eigentlich unauffällig aus.

Kannst du mir deine DEF zeigen bzw. die weiteren Schlüssel über die Adresse hinaus? War da gleich auch "autoTraining" gesetzt?

Bin grade ratlos. Bei Gelegenheit muss ich dann halt mal auch eine "Pseudo-AMAD-Babble-Umgebung" in meinem Hauptsystem aufziehen, vielleicht sieht man da mehr...
Der Code läuft da schon seit mehreren Tagen, allerdings hatte ich bisher auch den ESP32 nicht wieder in Betrieb genommen, um Umlaut-siteId's zu testen (das könnte mit den Warnings zusammenhängen).

Falls sonst jemand Ideen hat, bitte melden!
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Prof. Dr. Peter Henning

Hier mal ein List. Obwohl das AMAD-Device ordentlich funktioniert, gibt es weder einen Empfang vom AMAD-Device, noch eine Sprachausgabe darauf.

LG

pah



Internals:
   Babble     Babble
   CONFIGFILE /opt/fhem/rhasspy-de.cfg
   DEF        baseUrl=http://192.168.0.115:12101
Babble=Babble
   FUUID      6213cb45-f33f-8771-7d02-22c1a85ae4d28723
   IODev      rhasspyMQTT2
   LANGUAGE   de
   LASTInputDev rhasspyMQTT2
   MODULE_VERSION 0.5.13
   MSGCNT     89
   NAME       rhasspyDev
   NOTIFYDEV  AMADBridge,TYPE=(ROOMMATE|GUEST)
   NR         1098236
   NTFY_ORDER 50-rhasspyDev
   STATE      online
   TYPE       RHASSPY
   baseUrl    http://192.168.0.115:12101
   defaultRoom default
   devspec    genericDeviceType=.+
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   rhasspyMQTT2_MSGCNT 89
   rhasspyMQTT2_TIME 2022-02-22 20:42:11
   siteId     defhem
   useGenericAttrs 1
   READINGS:
     2022-02-22 14:43:24   IODev           rhasspyMQTT2
     2022-02-22 20:41:00   hotwordAwaiting_default 1
     2022-02-22 14:55:31   intents         de.fhem:SetOnOff,de.fhem:Musik,de.fhem:GetOnOff,de.fhem:GetTime,de.fhem:GetState
     2022-02-22 20:42:11   lastIntentPayload {"customData":null,"input":"wie spät ist es","intent":"GetTime","lang":null,"probability":1,"rawInput":"wie spät ist es","requestType":"text","sessionId":"fhem.textCommand","siteId":"default"}
     2022-02-22 20:42:11   lastIntentTopic hermes/intent/de.fhem_GetTime
     2022-02-22 20:41:00   listening_default 0
     2022-02-22 20:42:11   responseType    text
     2022-02-22 14:55:22   siteIds         default
     2022-02-22 15:08:07   state           online
     2022-02-22 20:42:11   textResponse    Es ist 20 Uhr 42
     2022-02-22 15:08:07   updateSlots     OK
     2022-02-22 20:19:13   voiceResponse   Es ist 20 Uhr 19
   TIMER:
   helper:
     STT:
       config:
         AMADCommBridge AMADBridge
         allowed    Tab2.EG
         filterFromBabble sage.mycroft
     TTS:
       default    Tab2.EG
       config:
         Tab2.EG:
           siteId     default

      (hier ungefähr 20 Devices mit genericdevicetype herausgenommen)

       rhasspyRooms:
         default:
       
    (hier diverse rhasspyRooms herausgenommen)

     lng:
       commaconversion 1
       mutated_vowels:
         Ä         Ae
         Ö         Oe
         Ü         Ue
         ß         ss
         ä         ae
         ö         oe
         ü         ue
       responses:
         DefaultCancelConfirmation Habe abgebrochen
         DefaultChangeIntentRequestRawInput wechseln zu $rawInput
         DefaultChoiceNoOutstanding warte grade nicht auf eine Auswahl
         DefaultConfirmation Gerne!|wird erledigt|ok|jawohl|zu diensten
         DefaultConfirmationBack also nochmal
         DefaultConfirmationNoOutstanding warte grade nicht auf eine bestätigung
         DefaultConfirmationReceived Ok, werde ich machen
         DefaultConfirmationRequestRawInput bestätige $rawInput
         DefaultConfirmationTimeout Tut mir leid, da hat etwas zu lange gedauert
         DefaultError Da passt irgend etwas nicht
         NoActiveMediaDevice Tut mir leid, es ist kein Wiedergabegerät aktiv
         NoDeviceFound Tut mir leid, ich konnte kein passendes Gerät finden
         NoMappingFound Tut mir leid, ich konnte kein passendes Mäpping finden
         NoMediaChannelFound Tut mir leid, der angefragte Kanal scheint nicht zu existieren.
         NoNewValDerived Tut mir leid, ich konnte den Zielwert nicht ausrechnen
         NoTimedOnDeviceFound Das gewählte Gerät unterstützt leider keine taimer Kommandos
         NoValidData ich habe leider zu wenig Daten um den Vorgang auszuführen
         RequestChoiceDevice Es kommen mehrere Geräte in Frage, bitte wähle zwischen $first_items oder $last_item
         RequestChoiceRoom Es kommen mehrere Geräte in verschiedenen Räumen in Frage, wähle einen Raum von  $first_items oder $last_item
         SilentCancelConfirmation
         duration_not_understood Tut mir leid, ich habe die Dauer nicht verstanden
         reSpeak_failed Tut mir leid, ich kann mich nicht erinnern
         timeRequest Es ist $hour Uhr $min
         timerCancellation $label im $room gelöscht
         weekdayRequest Heute ist $weekDay
         Change:
           brightness $deviceName ist auf $value gestellt
           desired-temp Die Solltemperatur von $location beträgt $value Grad
           humidity   Die Luftfeuchtigkeit von $location beträgt $value Prozent
           knownType  $mappingType von $location beträgt $value Prozent
           setTarget  $device ist auf $value gesetzt
           soilMoisture Die Bodenfeuchte von $location beträgt $value Prozent
           unknownType Der Wert von $location beträgt $value Prozent
           volume     $deviceName ist auf $value gestellt
           waterLevel Der Wasserstand von $location beträgt $value Prozent
           battery:
             0          Der Batteriestand von $location ist $value
             1          Der Batteriestand von $location beträgt $value Prozent
           temperature:
             0          Die Temperatur von $location ist $value
             1          Die Temperatur von $location beträgt $value Grad
         getStateResponses:
           STATE      $deviceName hat den Status [$device:STATE]
           price      Der aktuelle Preis für $reading in $deviceName beträgt [$device:$reading:d] Euro
           update     update für $deviceName ist angestoßen
         timerEnd:
           0          $label abgelaufen
           1          $label im raum $room abgelaufen
         timerSet:
           0          $label im Raum $room ist gestellt auf $seconds sekunden
           1          $label im Raum $room ist gestellt auf $minutetext $seconds
           2          $label im Raum $room ist gestellt auf $minutetext
           3          $label im Raum $room ist gestellt auf $hours stunden $minutetext
           4          $label im Raum $room ist gestellt auf $hours uhr $minutes
           5          $label im Raum $room ist gestellt auf morgen, $hours uhr $minutes
       stateResponses:
         inOperation:
           0          $deviceName ist fertig
           1          $deviceName läuft noch
         inOut:
           0          $deviceName ist ausgefahren
           1          $deviceName ist eingefahren
         onOff:
           0          $deviceName ist ausgeschaltet|$deviceName ist aus
           1          $deviceName ist eingeschaltet|$deviceName ist an
         openClose:
           0          $deviceName ist geöffnet|$deviceName ist offen
           1          $deviceName ist geschlossen|$deviceName ist zu
       units:
         unitHours:
           0          stunden
           1          eine stunde
         unitMinutes:
           0          minuten
           1          eine minute
         unitSeconds:
           0          Beispiel 1a: einige Sekunden
           1          Beispiel 1b: genau eine Sekunde
       words:
         and        und
         off        aus
         on         an
     shortcuts:
     tweaks:
Attributes:
   IODev      rhasspyMQTT2
   group      Rhasspy-Fhem
   languageFile /opt/fhem/rhasspy-de.cfg
   rhasspySTT allowed=Tab2.EG
AMADCommBridge=AMADBridge
filterFromBabble=sage mycroft
   rhasspyTTS Tab2.EG=siteId=default ttsCommand={speak("$DEVICE","$message")}
   room       RhasspyRoom
   verbose    3


Beta-User

Hmmm, das list sieht m.E. OK aus, von daher wären die Events bzw. Readings an der AMADBridge interessant. Passt evtl. noch nicht zu dem, was NotifyFn erwartet?
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Melde mich auch wiedermal und lade zu einem Brainstorming ein:

Der Timer funktioniert nicht, wenn ich eine Satelliten-Gruppe habe (z.B. siteIds wohnzimmer.01 + wohnzimmer.02) weil die Ausgabe ja im Endeffekt auf einen Raum fixiert ist und nicht auf die siteId. Beziehungsweise RHASSPY nicht weiß, auf welcher von mehreren siteIds in einem Raum es die Ausgabe machen soll, wenn ich den Timer von einem anderen Raum aus starte.

Wie könnten wir das am Besten lösen?

Beta-User

Kannst du mal checken, ob das paßt, wenn das Kommando geändert wird (#4856 und #4862) und statt auf $timerRoom auf $siteId  ausgegeben wird?
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Vermutlich.
Aber wenn ich in der Küche sage "Stell den Timer im Wohnzimmer auf x", woher soll dann RHASSPY wissen, auf welcher siteId im Wohnzimmer es die Ausgabe machen soll?

Beta-User

OK, korrekt, löst nur einen Teil des Problems... ::)

Das ganze ist möglicherweise nicht nur auf "sendSpeakCommand" beschränkt, sondern auch ein Thema für "setPlayWav", und ein wenig bin ich der Auffassung, dass das eigentlich in Rhasspy gelöst werden sollte und nicht in RHASSPY.
Ansatzpunkt wäre eine Analogie zum siteId2room-Reading? Also: Wenn "speak" ausgeführt werden soll, schau, welcher Raum betroffen ist bzw. ob das eine "echte" siteId ist, wenn nein, nimm die Vorgabe aus dem Reading, wenn nicht, nimm die längste siteId, die zu dem Raum paßt...?
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: Beta-User am 23 Februar 2022, 11:13:51
und ein wenig bin ich der Auffassung, dass das eigentlich in Rhasspy gelöst werden sollte und nicht in RHASSPY.

Rhasspy kennt aber die Räume nicht. Weiß also nicht, welche siteId in welchem Raum ist. Oder hab ich dich gerade falsch verstanden?


Zitatwenn nicht, nimm die längste siteId, die zu dem Raum paßt...?

Du meinst quasi einen Buchstaben-Vergleich nach der Art: Es gibt einen Raum "wohnzimmer", gibt's auch eine siteId mit "wohnzimmer"?
Was aber, wenn die siteIds gleich lang sind?

Beta-User

Zitat von: drhirn am 23 Februar 2022, 11:17:31
Rhasspy kennt aber die Räume nicht. Weiß also nicht, welche siteId in welchem Raum ist. Oder hab ich dich gerade falsch verstanden?
Na ja, nach meinem Verständnis macht das mit den Gruppen nur Sinn, wenn mehrere Rhasspy in einem Raum vorhanden sind, aber klar, die Logik "Raum" = "Gruppenname" ist nicht 100% zwingend. Rhasspy sollte aber eigentlich irgendwie intern entscheiden, wie ein an eine Gruppe abgesetzter "Befehl" (unabhängig davon, um was es sich konkret handelt) an die einzelnen Gruppenmitglieder "zugestellt" wird.

Zitat
Du meinst quasi einen Buchstaben-Vergleich nach der Art: Es gibt einen Raum "wohnzimmer", gibt's auch eine siteId mit "wohnzimmer"?
Was aber, wenn die siteIds gleich lang sind?
Im Zweifel: Zufall...
Man könnte auch noch alphanumerisch innerhalb der Länge sortieren oä.. War nur erst mal der Spur nach, und besser "irgendwo in der Nähe" eine Ausgabe als gar keine ::) ... Die Logik zu verfeinern ist dann nicht das große Thema, schwieriger ist die Frage, wann diese (zentrale) Logik anzusteuern ist.
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files