SEPIA-Framework / sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
https://sepia-framework.github.io/
236 stars 16 forks source link

headless client: wie das Mikrofon triggern durch Buttonaktion am Client? #72

Open rubipopubi opened 3 years ago

rubipopubi commented 3 years ago

Hey,

ich komme grade nicht weiter mit folgendem Problem:

Ich würde gerne das Mikrofon am headless client (pi3) über einen Knopfdruck (beispielsweise den Button am 2mic-hat) aktivieren können. Ist das möglich und wenn ja wie? Verstehe nicht, wie ich Clexibefehle geben kann, ohne auf die Client Connections Seite zurück zu greifen. Liebe Grüße

fquirin commented 3 years ago

Hi,

ja das ist möglich. In https://github.com/SEPIA-Framework/sepia-docs/issues/75 kam auch eine ähnliche Frage (mit Option über den SEPIA Server). Der CLEXI Server hat einen 'events' Endpoint der HTTP calls in WebSocket broadcasts Umwandeln kann. Ich muss die Syntax dafür selber mal zusammenbasteln und poste diese dann hier :sweat_smile:

Alternativ gäbe es noch die Möglichkeit über einen mini custom Service, vielleicht schaffe ich es auch dafür noch ein Beispiel zu bauen in den kommenden Tagen. Generell ging mir schon durch den Kopf, dass man sowas eventuell tiefer in den Client einbauen könnte :thinking:

Grüße, Florian

rubipopubi commented 3 years ago

Hey, interessant! Ich schau mir das mal an. Ein Beispiel wäre auch sehr hilfreich! 😄 Ansonsten hätte ich noch eine weitere Frage, die die Steuerung und Anbindung des headless clients betreffen: Ein Wunsch meinerseits wäre, dass der Client bestimmte events aus iobroker (alternativ per telegram, falls das machbar ist? Bin da völlig uninformiert) akustisch wiedergeben kann, z.B. wenn das Fenster länger als x Minuten offen ist. Gibt es überhaupt eine Möglichkeit seitens Iobroker aktiv was rüber zu Sepia zu pushen? Ansonsten würde es ja auch eine einfach Triggerroutine leisten, die ich per SEPIA laufen lasse und die iobroker auf Änderungen bestimmter Variablen pollt. Geht das irgendwie?

fquirin commented 3 years ago

Hi,

ich habe es nun endlich mal geschafft die API Sektion mit neuen Beispielen für den Remote-Action Endpoint und das CLEXI HTTP-Events Interface zu aktualisieren: API-Docs Ich hoffe das hilft etwas :slightly_smiling_face: , es ist auch ein Beispiel dabei für Mikrofon-Trigger via CLEXI ;-)

In der neuen Version SEPIA-Home v2.5.1 gibt es jetzt die Möglichkeit eigene mini HTML widgets zu erstellen. Ich plane ein Beispiel zu erstellen für ein Client-Remote widget mit dem man z.B. auch via SEPIA App die anderen aktiven Clients triggern oder "steuern" kann.

Ein Wunsch meinerseits wäre, dass der Client bestimmte events aus iobroker (alternativ per telegram, falls das machbar ist? Bin da völlig uninformiert) akustisch wiedergeben kann, z.B. wenn das Fenster länger als x Minuten offen ist

Spontan fallen mir da ein paar Möglichkeiten ein, die aber alle ein bisschen aufwändiger sind :-/. Man könnte z.B. einen Service mit dem SDK erstellen, der regelmäßig den Status von ioBroker abfragt oder via Socket Verbindung oder MQTT lauscht und dann via "follow-up" Message den User informiert (das habe ich bisher nur im 'WorkoutHelperDemo' getestet). Eine zweite Möglichkeit wäre die neue custom HTML widget Funktion des Client zu nutzen und auf ein Event zu lauschen, dass der ioBroker an den CLEXI Server sendet (so ähnlich wie Oben beschriebener 'remote-button').

Ich muss mal überlegen, ob ich so eine Funktion noch einfacher umsetzen könnte :-)

fquirin commented 3 years ago

Mir ist gerade eingefallen, dass es die Möglichkeit gibt Sounddateien via remote-action zu triggern. Das habe ich in diesem issue kurz erwähnt: https://github.com/SEPIA-Framework/sepia-docs/issues/75#issuecomment-715982689 Vielleicht eine Idee für dich?

rubipopubi commented 3 years ago

Hey, danke für das coole neue Update, läuft bislang hervorragend. Den Button fürs Triggern des Mikrofons hab ich zwiwchenzeitlich rustikal einfach über den Curl command, den du in einem anderen Post erwähnt hattest und ein entsprechendes Script umgesetzt, was zwar nicht schön ist, aber derzeit funktioniert. Ich werde mir mal anschauen, wie ich es besser umsetzen kann. Die Idee mit entsprechenden Soundfiles, die auf Befehl abgespielt werden, finde ich super. Das wäre eine Lösung. Noch cooler wäre natürlich reiner Text, der von iobroker, ähnlich wie eine telegram Nachricht gesendet und dann vom sepia client abgespielt werden kann. Was mich auf eine Idee bringt: Eine Telegrameinbindung mit entsprechendem Broadcast von eingehenden Nachrichten wäre auch cool. Wenn du mir da ein wenig rein helfen könntest, wie und wo ich am besten anfange und ob das überhaupt machbar ist, könnte ich mich auch mal selbst daran versuchen?

fquirin commented 3 years ago

Noch cooler wäre natürlich reiner Text, der von iobroker, ähnlich wie eine telegram Nachricht gesendet und dann vom sepia client abgespielt werden kann.

Ich habe das mal auf die To-Do Liste gesetzt :-). Vielleicht nenne ich es "intercom" wie die neue Funktion beim Apple Home Pod :yum:

Was mich auf eine Idee bringt: Eine Telegrameinbindung mit entsprechendem Broadcast von eingehenden Nachrichten wäre auch cool. Wenn du mir da ein wenig rein helfen könntest, wie und wo ich am besten anfange und ob das überhaupt machbar ist, könnte ich mich auch mal selbst daran versuchen?

Ich kenne mich mit Telegram nicht aus, aber vermutlich sind grundsätzlich alle Voraussetzungen gegeben. Im einfachsten Fall könnte man aus Telegram einfach die HTTP calls absetzen, im Besten Fall vielleicht sogar die richtige WebSocket Verbindung über den SEPIA Chat Server nehmen um Nachrichten zu senden, genau wie zwischen SEPIA Client Usern :-) Welche Programmiersprache nutzt Telegram eigentlich für Plugins?

rubipopubi commented 3 years ago

Ich habe das mal auf die To-Do Liste gesetzt :-). Vielleicht nenne ich es "intercom" wie die neue Funktion beim Apple Home Pod 😋

Cool! Intercom würde super passen. Habe die Sounds (coin, etc.) bei mir ohnehin durch Star Trek Intercom Sounds ausgetauscht 👍

Welche Programmiersprache nutzt Telegram eigentlich für Plugins?

Keine Ahnung 🤦 Ich werd mir das die Tage mal anschauen.

fquirin commented 3 years ago

Habe die Sounds (coin, etc.) bei mir ohnehin durch Star Trek Intercom Sounds ausgetauscht

Das geht übrigens jetzt auch offiziell via settings.js field (in device section) :grin: :

"deviceSounds": {
    "micConfirm": "sounds/coin_alternative.mp3"
}