NEWS
neues IOT: Kann eigenen Datenpunkt nicht hinzufügen
-
Mit dem "neuen" IOT werde ich auch nicht so warm.
Ich hab mal meine DP im Javascript Ordner nachgeschaut.
Den einzigen Unterschied, den ich habe ist, dass ich bei Rolle in der Spalte nichts stehen habe (bei dir "state").
Ich kann alle DP in den IOT hinzufügen.
Vielleicht löschst du mal den Wert state in der Spalte Rolle.
Oder löschst den Smartnamen im DP.
Wie gesagt, alles nur stochern im Nebel, da ich alle meine DP in den IOT hinzufügen kann.Aber um das richtig zu verstehen: Du drückst das + Zeichen im IOT und wählst dann den Streaming DP aus?
@haselchen sagte in neues IOT: Kann eigenen Datenpunkt nicht hinzufügen:
Vielleicht löschst du mal den Wert state in der Spalte Rolle.
Habe ich gemacht.
Aber um das richtig zu verstehen: Du drückst das + Zeichen im IOT und wählst dann den Streaming DP aus?
Genau.
Und wenn ich das jetzt mache mit dem gelöschten state kommt

Gruss Ralf -
@derrapf mach doch wie empfohlen... erstell einen neuen Alias... oder nimm einfach mal direkt den Alias, den du schon hast. Würde ich ja generell so machen... dafür sind Alias doch da.
@lobomau sagte in neues IOT: Kann eigenen Datenpunkt nicht hinzufügen:
@derrapf mach doch wie empfohlen... erstell einen neuen Alias... oder nimm einfach mal direkt den Alias, den du schon hast. Würde ich ja generell so machen... dafür sind Alias doch da.
Ich hab das mal probiert. Und es liess sich immerhin hinzufügen.
Erstmal gut.Aber trotzdem habe ich das Konzept noch nicht ganz verstanden.
-
Dass ich für ein Gerät einen Alias brauche verstehe ich irgendwie, denn ich kann die Hardware tauschen und das Gerät heisst immer noch gleich.
Aber bei einem Datenpunkt den ich softwareseitig anlege: Warum muss da nochmal ein Alias drumrum gebaut werden?
Muss ich jetzt für jeden manuell angelegten Datenpunkt nochmal einen Alias machen damit IOT funktioniert? Das ist ja voll der Overkill. -
Und was ich auch nicht verstehe: Welche Funktion haben die Paramater "Funktion" bzw. "Raum"? Steuern die etwas bestimmtes (was?) oder sind die nur rein informell, bzw. zum filtern?
Muss "Funktion" irgend etwas Bestimmtes sein, dass es funktioniert? Wie verhält sich der Datenpunkt wenn ich als Funktion "Licht" nehme im Unterschied zur Funktion "Taster"?
Bei mir sieht der Alias grad so aus:

und in IOT so

Warum hat er nun eine Szene draus gemacht?Vielleicht fehlt jetzt nur noch eine winzige Kleinigkeit?
Achso vielleicht noch wichtig:
Weil ich nicht sagen will "Alexa Streaming einschalten" hatte ich in der Alexa App eine Routine "Streaming" angelegt die den Datenpunkt javascript.0.mediola.alexatrigger.Streaming auf "an" gesetzt hat.
Jetzt mus sich wahrscheinlich den Alias nehmen der nach Alexa übertragen werden sollte.Ich habe deshalb nun "Alexa finde meine Geräte gesagt" und den Alias "Streaming" nicht unter den neuen Geräten gefunden. Dafür gibt es nun ein Gerät "scene #" von dem ich nicht erkennen kann was dahinter steckt. Man sieht nur ein An/Aus Symbol und "Der Strom ist an" und einen Schieber für Helligkeit. Ev. ist das gar nicht mein Alias.
Nur wo ist der dann?
Müsste ich nicht den Alias als Gerät "Streaming" finden?Ich blick da nicht mehr ganz durch dieses Konzept
Gruss Ralf -
-
Ich hatte das kürzlich auch mit der selben Fehlermeldung von wegen Rolle der Objekte prüfen.
Rollen sahen für mich gut aus, dann nochmal im IOT Adapter nachgesehen und dann war der DP schon integriert, trotz der (Fehler)Meldung. -
@lobomau sagte in neues IOT: Kann eigenen Datenpunkt nicht hinzufügen:
@derrapf mach doch wie empfohlen... erstell einen neuen Alias... oder nimm einfach mal direkt den Alias, den du schon hast. Würde ich ja generell so machen... dafür sind Alias doch da.
Ich hab das mal probiert. Und es liess sich immerhin hinzufügen.
Erstmal gut.Aber trotzdem habe ich das Konzept noch nicht ganz verstanden.
-
Dass ich für ein Gerät einen Alias brauche verstehe ich irgendwie, denn ich kann die Hardware tauschen und das Gerät heisst immer noch gleich.
Aber bei einem Datenpunkt den ich softwareseitig anlege: Warum muss da nochmal ein Alias drumrum gebaut werden?
Muss ich jetzt für jeden manuell angelegten Datenpunkt nochmal einen Alias machen damit IOT funktioniert? Das ist ja voll der Overkill. -
Und was ich auch nicht verstehe: Welche Funktion haben die Paramater "Funktion" bzw. "Raum"? Steuern die etwas bestimmtes (was?) oder sind die nur rein informell, bzw. zum filtern?
Muss "Funktion" irgend etwas Bestimmtes sein, dass es funktioniert? Wie verhält sich der Datenpunkt wenn ich als Funktion "Licht" nehme im Unterschied zur Funktion "Taster"?
Bei mir sieht der Alias grad so aus:

und in IOT so

Warum hat er nun eine Szene draus gemacht?Vielleicht fehlt jetzt nur noch eine winzige Kleinigkeit?
Achso vielleicht noch wichtig:
Weil ich nicht sagen will "Alexa Streaming einschalten" hatte ich in der Alexa App eine Routine "Streaming" angelegt die den Datenpunkt javascript.0.mediola.alexatrigger.Streaming auf "an" gesetzt hat.
Jetzt mus sich wahrscheinlich den Alias nehmen der nach Alexa übertragen werden sollte.Ich habe deshalb nun "Alexa finde meine Geräte gesagt" und den Alias "Streaming" nicht unter den neuen Geräten gefunden. Dafür gibt es nun ein Gerät "scene #" von dem ich nicht erkennen kann was dahinter steckt. Man sieht nur ein An/Aus Symbol und "Der Strom ist an" und einen Schieber für Helligkeit. Ev. ist das gar nicht mein Alias.
Nur wo ist der dann?
Müsste ich nicht den Alias als Gerät "Streaming" finden?Ich blick da nicht mehr ganz durch dieses Konzept
Gruss Ralf@derrapf sagte in neues IOT: Kann eigenen Datenpunkt nicht hinzufügen:
Dass ich für ein Gerät einen Alias brauche verstehe ich irgendwie, denn ich kann die Hardware tauschen und das Gerät heisst immer noch gleich.
Aber bei einem Datenpunkt den ich softwareseitig anlege: Warum muss da nochmal ein Alias drumrum gebaut werden?
Muss ich jetzt für jeden manuell angelegten Datenpunkt nochmal einen Alias machen damit IOT funktioniert? Das ist ja voll der Overkill.Da bin ich erstmal bei dir dass der Austausch eines Geräts in diesem Fall nie zutreffen wird. Ich glaube es liegt daran wie der "streaming DP" unter javascript angelegt wurde; hierbei kann man sicherlich auch eine bestimmte Rolle mitgeben. Und diese Rolle kann man über Alias korrigieren wenn sie vorher falsch war. Richtiger und schöner wäre es zudem gewesen den "streaming DP" unser 0.user bei den Objekten anzulegen. Ich lege dabei dann meist nicht noch zusätzlich einen DP unter 0.alias an, reicht ja der unter 0.user.
Und was ich auch nicht verstehe: Welche Funktion haben die Paramater "Funktion" bzw. "Raum"? Steuern die etwas bestimmtes (was?) oder sind die nur rein informell, bzw. zum filtern?
ja, ich glaube Funktion und Raum ist nur zum Filtern. Wobei bei Funktion es glaube ich zwei verschiedene gibt? Den einen den man angibt beim Erstellen des Alias, z.B. Licht oder Schalter, den man nicht ändern kann und dann diese andere Funktion unter Objekte, den man ändern kann. Oder ist doch beides das gleiche? Ich kann gerade nicht auf meine Objektbaum zugreifen. Würde mich auch mal interessieren.
Muss "Funktion" irgend etwas Bestimmtes sein, dass es funktioniert? Wie verhält sich der Datenpunkt wenn ich als Funktion "Licht" nehme im Unterschied zur Funktion "Taster"?
Das ist für mich das festeingestellte, was einen Unterschied ausmacht.
-
-
Funktionen und Räume stammt aus den Anfängen von ioBroker/
ccu.iound entspricht den Gewerken und Räumen wie sie bei HomeMatic in der CCU angelegt weden konnten.
Diese sind frei zu vergeben und können außer als zusätzliche Ordnungshilfen auch in Skripten zur Gruppierung von Aufgaben verwendet werden. -
Ok, dann bleibt für mich die Frage: Warum taucht der Alias nicht in den Alexa Geräten auf? Oder ist er versteckt unter dieser ominöses "scene #"? Man kann ja leider nicht sehen was dahinter steckt. Und selbst wenn er es ist: Warum triggert er nicht meinen Datenpunkt? Alles irgendwie Voodoo.....
Wenn man die Mechanismen nicht genau kennt ist man wie blöd...
Gruss Ralf -
Ok, dann bleibt für mich die Frage: Warum taucht der Alias nicht in den Alexa Geräten auf? Oder ist er versteckt unter dieser ominöses "scene #"? Man kann ja leider nicht sehen was dahinter steckt. Und selbst wenn er es ist: Warum triggert er nicht meinen Datenpunkt? Alles irgendwie Voodoo.....
Wenn man die Mechanismen nicht genau kennt ist man wie blöd...
Gruss Ralf@derrapf sagte in neues IOT: Kann eigenen Datenpunkt nicht hinzufügen:
Warum taucht der Alias nicht in den Alexa Geräten auf
ich kenne Alexa nicht, aber es liegt wahrscheinlich an der Rolle.
Kann Alexa sich etwas unterstatevorstellen?Wäre
switchoderLevelje nach Funktion nicht eindeutiger um die Ausführungsart festzulegen?Deswegen auch alias, falls du einen (Adapter-)Datenpunkt mit uneindeutiger Rolle hast, und du diese Rolle natürlich nicht selber ändern kannst.
-
Kann Alexa sich etwas unter state vorstellen?
Keine Ahnung. Deswegen frage ich ja.
Ich versuche vielleicht nochmal zusammenzufassen was ich bisher gemacht habe.
Da wäre also zuerst mal der Datenpunkt selber. Den habe ich oben ja gepostet. Der hat den Typ "number". Schon immer gehabt. Der Datenpunkt funktioniert wenn ich ihn manuell auf true oder false setze. Die Rolle war null. Die habe ich nun wie bei allen anderen dieser Datenpunkte auf "state" gesetzt. Soll ich den ändern? Auf was?:Zum Alias den ich angelegt habe: Der hatte tatsächlich in IOT "Szene" zugeordnet. Den habe ich jetzt auf "Steckdose" und auf "Licht" gesetzt, weil die kann man ja an und abschalten.
Hat aber beides nicht funktioniert.Dann ist mir was aufgefallen: Es gibt einen weiteren Datenpunkt "Rock spielen" in IOT:
Der wurde auch ohne Alias von IOT automatisch erkannt und hinzugefügt.
Der andere Datenpunkt "Streaming" sieht genau so aus, wurde aber weder hinzugefügt noch lässt er sich manuell hinzufügen:

Hier der Code mit dem ich die beiden anlege:createState(idplayRock, 0, force_creation, { name: 'Rock über Echo spielen', smartName: 'Rock spielen', desc: 'Trigger mit Level für Alexa um einen hhtp request zu erzeugen', type: 'number', unit: '', role: 'state' }); createState(idStreaming, 0, force_creation, { name: 'Streaming', smartName: 'Streaming, Tidal, Szene3', desc: 'Trigger mit Level für Alexa um einen hhtp request zu erzeugen', type: 'number', unit: '', role: 'state' });Ich blick's grad wirklich nicht warum der eine in IOT drin ist und der Andere sich nur mit Hilfe eines Alias hinzufügen lässt.
Tatsache ist:
"Rock spielen" funktioniert wenn ich den Datenpunkt in der Alexa App einschalte.
"Streaming" funktioniert nicht, wenn ich den Datenpunkt in der Alexa App einschalte.
Beide triggern nichts in IOBroker, wenn ich das Kommando spreche. Da sollte eigentlich die Routine "Alexa streaming" oder "Alexa Rock spielen" die beiden Datenpunkte auf 1 oder true stellen. Aber nichts passiert.Das ging alles mal mit dem alten IOT. Ich hab ja nichts verändert. Frustrierend..
Gruss Ralf -
Kann Alexa sich etwas unter state vorstellen?
Keine Ahnung. Deswegen frage ich ja.
Ich versuche vielleicht nochmal zusammenzufassen was ich bisher gemacht habe.
Da wäre also zuerst mal der Datenpunkt selber. Den habe ich oben ja gepostet. Der hat den Typ "number". Schon immer gehabt. Der Datenpunkt funktioniert wenn ich ihn manuell auf true oder false setze. Die Rolle war null. Die habe ich nun wie bei allen anderen dieser Datenpunkte auf "state" gesetzt. Soll ich den ändern? Auf was?:Zum Alias den ich angelegt habe: Der hatte tatsächlich in IOT "Szene" zugeordnet. Den habe ich jetzt auf "Steckdose" und auf "Licht" gesetzt, weil die kann man ja an und abschalten.
Hat aber beides nicht funktioniert.Dann ist mir was aufgefallen: Es gibt einen weiteren Datenpunkt "Rock spielen" in IOT:
Der wurde auch ohne Alias von IOT automatisch erkannt und hinzugefügt.
Der andere Datenpunkt "Streaming" sieht genau so aus, wurde aber weder hinzugefügt noch lässt er sich manuell hinzufügen:

Hier der Code mit dem ich die beiden anlege:createState(idplayRock, 0, force_creation, { name: 'Rock über Echo spielen', smartName: 'Rock spielen', desc: 'Trigger mit Level für Alexa um einen hhtp request zu erzeugen', type: 'number', unit: '', role: 'state' }); createState(idStreaming, 0, force_creation, { name: 'Streaming', smartName: 'Streaming, Tidal, Szene3', desc: 'Trigger mit Level für Alexa um einen hhtp request zu erzeugen', type: 'number', unit: '', role: 'state' });Ich blick's grad wirklich nicht warum der eine in IOT drin ist und der Andere sich nur mit Hilfe eines Alias hinzufügen lässt.
Tatsache ist:
"Rock spielen" funktioniert wenn ich den Datenpunkt in der Alexa App einschalte.
"Streaming" funktioniert nicht, wenn ich den Datenpunkt in der Alexa App einschalte.
Beide triggern nichts in IOBroker, wenn ich das Kommando spreche. Da sollte eigentlich die Routine "Alexa streaming" oder "Alexa Rock spielen" die beiden Datenpunkte auf 1 oder true stellen. Aber nichts passiert.Das ging alles mal mit dem alten IOT. Ich hab ja nichts verändert. Frustrierend..
Gruss Ralf@derrapf sagte in neues IOT: Kann eigenen Datenpunkt nicht hinzufügen:
Beide triggern nichts in IOBroker, wenn ich das Kommando spreche.
In einem derartigen Fall schaue ich mir immer den Zeitpunkt der letzten Änderung des Datenpunktes an.
Wurde er durch das Kommando geändert, haben wohl Alexa und der iot Adapter ihren Job richtig gemacht. Dann muss ich meine eigene nachfolgende Routine überprüfen. Hier hilft es oft, den Datenpunkt manuell zu bedienen.
Hat das Kommando den Last Change des Datenpunktes unverändert gelassen, so muss ich auf iot- und Alexa-Seite weitersuchen. Erster Schritt: Die Routine in der Alex-App durch Klicken starten. Zweiter Schritt: Falls noch nicht vorhanden, in der Routine eine Alexa-Antwort einbauen, um zu sehen, ob Alexa überhaupt mein Kommando richtig verstanden hat. Hier ist ein Blick in alexa2.0.History.summary auch oft nützlich.
Das erfolgreiche Herrichten eines Datenpunktes für iot hat zuweilen schon einen Glücksspielcharakter. Mittlerweile weiß ich, dass ich dabei größere Gewinchancen habe, wenn ich dem Datenpunkt den smartType socket verpasse - egal welche Rolle der Datenpunkt auf der reinen iobroker-Seite spielt.
{ "common": { "name": "Roborock2026_Start", "desc": "Manually created", "role": "button", "type": "boolean", "read": true, "write": true, "def": false, "custom": { "iot.0": { "smartName": { "smartType": "socket", "en": "Roborock2026 Start" } } } }, -
Wurde er durch das Kommando geändert, haben wohl Alexa und der iot Adapter ihren Job richtig gemacht. Dann muss ich meine eigene nachfolgende Routine überprüfen.
Hier hilft es oft, den Datenpunkt manuell zu bedienen.Das hab ich ja oben geschrieben funktioniert.
Wenn ich die manuellen Datenpunkte unter Objects ändere, dann greifen meine Scripte und schalten die Anlage ein. Somit funktioniert ab da alles prima.
Was nicht (mehr) funktioniert sind meine Routinen in der AlexaApp. Z.B. "Alexa streaming"; diese Routine schaltet den entsprechenden Datenpunkt ein. Dieses "Einschalten" sollte sich dann auf den Datenpunkt im IObroker auswirken.
Das geht mit beiden Datenpunkten nicht.Dann gibt es noch den Unterschied, dass sich der Eine problemlos in IOT hinzufügen lässt (und damit auch in Alexa zur Verfügung steht) und auch in der Alexa-App manuell bedienen lässt und diese Änderung an IOBroker weitergibt und alles funktioniert.
Nur dieser andere "Straming" Datenpunkt, der genau gleich aussieht, wird von IOT nicht gefunden und lässt sich auch manuell nicht hinzufügen. Und wen man ihn als Alias hinzufügt taucht er zwar in der AlexaApp auf, lässt sich aber weder manuell noch per Sprache verwenden.
Ich habe auch schon die ganzen Datenpunkte gelöscht und durch das Script wieder neu angelegt. Das Verhalten ändert sich nicht.
Irgend einen Unterschied muss es zwischen den beiden Datenpunkten gegen den ich nicht sehen.
Und selbst wen ich den gefunden habe und dann den Punkt in die AlexaApp hinzufügen kann, ist die Frage warum Alexa sagt "OK" aber nicht im IOBroker an diesem Datenpunkt geändert wird. Irgendwas wichtiges hab ich übersehen.Ich werde mir aber heute abend Deine Vorschläge genauer ansehen und befolgen. Ich melde mich dann mit Ergebnissen.
Vielleicht so nochmal als Zusammenfassung:
javascript.*.Rock spielen --->einfügen--->IOT (ok)--->einfügen--->Alexapp(OK)--->manuell starten,OK
javascript.*.Streaming --->einfügen--->IOT (nicht OK)
dafür geht:
alias. *.Streaming --->einfügen--->IOT (OK)--->einfügen--->Alexapp(OK)--->manuell starten,NICHT OKFür beide Datenpunkte gilt:
AlexaApp-Routinen
|____ Rockspielen ---> setzt javascript..Rock spielen=true --->IOB: keine Änderung
|____ Streaming ---> setzt alias..Streaming=true --->IOB: keine ÄnderungGruss Ralf
-
Ohne mich groß einmischen zu wollen - ich kenn mich bei IOT / Alexa nicht aus - hier die State Roles die ioBroker und damit der Devicedetector der im Hintergrund bei IOT aktiv ist kennt: https://www.iobroker.net/#en/documentation/dev/stateroles.md