05 Datenpunkt Erklärung. Integrierte Geräte in IOT Adapter integrieren und über Alexa steuern.



  • Datenpunkt erstellen unter 0_userdata


    Damit man solche erstellten Datenpunkte in die iot bekommt, muss man (leider) einiges selber hinzufügen.

    Nach dem erstellen auf den Bleistift klicken.

    Dort auf den Reiter "Objektdaten"

    Dort muss man

    "native": {},

    hinzufügen. Und zwar nach dem common Teil:

    Die Zeile 14 ist der letzte Teil von common

    Danach einfach "native": {}, hinzufügen

    Beispiel:




    RGB W/WW Lampen


    Datenpunkt:

    Rolle=

    level.dimmer

    level.color.temperature

    level.color.hue

    level.color.saturation


    Befehle zu Alexa:


    Weiß, Warmweiß

    Tageslicht, Kaltweiß

    Weiches weiß


    Wärmer, Kühler

    Dimme %, Heller, Dunkler, Schalte an/aus


    Alle Farben (Rot, Blau, Magenta, u.s.w.)




    RGB Lampen

    Datenpunkte:

    Rolle=

    level.dimmer

    level.color.rgb



    Schalter/Steckdosen

    Rolle= switch oder level


    Code
    1. "common": {
    2. "name": "Switch state",
    3. "type": "boolean",
    4. "read": true,
    5. "write": true,
    6. "role": "switch"
    7. },


    Rollo/Jalousie

    (Fahr hoch/runter/zur hälfte, u.s.w.)

    Rolle= level.blind


    Schloß

    (Schließe Tür)

    Speziell. Muss alles passen in RAW. Rolle alleine reicht nicht

    Rolle=switch.lock




    Thermostat/Temperatur lesen (Kombinierbar mit Thermostat/Temperatur stellen)( Gleicher Smartname)

    (Wie ist die Temperatur)

    Speziell. Muss alles passen in RAW. Rolle alleine reicht nicht

    Rolle=value.temperature

    Code
    1. "common": {
    2. "name": "gerät_temp_lesen_",
    3. "type": "number",
    4. "unit": "°C",
    5. "role": "value.temperature",
    6. "desc": "actual Temp",
    7. "read": true,
    8. "write": false
    9. },


    Thermostat/Temperatur stellen (Kombinierbar mit Thermostat/Temperatur lesen)( Gleicher Smartname)

    (Stelle die Temperatur auf)

    Speziell. Muss alles passen in RAW. Rolle alleine reicht nicht
    Rolle=value.temperature


    Code
    1. "common": {
    2. "name": "gerät_lesen_schreiben_",
    3. "type": "number",
    4. "unit": "°C",
    5. "role": "value.temperature",
    6. "desc": "Target Temp",
    7. "read": true,
    8. "write": true
    9. },


    Prozent

    (Stelle auf 50%)

    Speziell. Muss alles passen in RAW. Rolle alleine reicht nicht
    Rolle=value.temperature





  • Dazu möchte ich hinzufügen das Alexa für das Anschalten die in IOT angegeben Werte "bei an" z.B. 100% nutz um das Gerät auch einzuschalten, besonders der Datenpunkt "level.dimmer". Heißt also das Alexa nicht die Lampe einschalten und dann 100% dimmer wert an das Gerät sendet, sondern direkt nur die 100% dimmerwert sendet fürs einschalten und 0% fürs ausschalten. Dies wird aber von z.B. den Yeelight Lampen gar nicht unterstützt und können somit weder an noch ausgeschaltet werden.
    Die Lösung ist einfach aber dennoch etwas Tricky, denn alle Einstellungen im IOT aber auch manchen anderen Adapter werden direkt in die Datenpunkt gespeichert. Dies kann man unter Spalte "Einstellung" Stift und dann unter dem Reiter RAW sehen. Ist also ein Geräte unter den IOT Adapter eingebunden und wurde explizit der Wert bei dem Datenpunkt "level.dimmer" "bei an" verändert, hier z.B. auf 95% sieht man folgenden Eintrag:

    Code
    1. "smartName": {
    2.   "smartType": "LIGHT",
    3.   "byON": "95"
    4. }

    Hier muss aber der "byOn" Wert verändert werden nämlich auf "-", also muss der RAW Datenpunkt so aussehen:

    Code
    1. "smartName": {
    2.   "smartType": "LIGHT",
    3.   "byON": "-"
    4. }
    5. Speichern nicht vergessen. 

    Nur so ist unter dem IOT Adapter kein Wert unter "bei an" unter dem Datenpunkt dimmer zu sehen. Und wenn kein Wert vorhanden ist muss Alexa nun alle Wert einzelnen verschicken, also auch den "true" Befehl für den "ON" Datenpunkt. Was sie dann auch brav macht, was hier zu sehen ist:
    Vor der Änderung:

    Code
    1. Ursprung: system.adapter.iot.0 | Objekt ID: alias.0.Lichter.Linke_Nachttischlampe.DIMMER | Wert: 100

    Nach der Änderung:

    Code
    1. Ursprung: system.adapter.iot.0 | Objekt ID: alias.0.Lichter.Linke_Nachttischlampe.TEMPERATURE | Wert: 6500
    2. Ursprung: system.adapter.iot.0 | Objekt ID: alias.0.Lichter.Linke_Nachttischlampe.RGB | Wert: #FFFFFF
    3. Ursprung: system.adapter.iot.0 | Objekt ID: alias.0.Lichter.Linke_Nachttischlampe.ON | Wert: true
    4. Ursprung: system.adapter.iot.0 | Objekt ID: alias.0.Lichter.Linke_Nachttischlampe.DIMMER | Wert: 100


    Außerdem durchsucht der IOT Adapter automatisch alle Datenpunkte mit einem ROLLEN oder RAUM Eintrag nach passenden Datenpunkte und listet diese auf. Was ein großes durcheinander verursachen kann, was daher rührt das der IOT Adapter den Namen für den Smartnamen nutzt, also ON DIMMER etc. Also entweder man nutzt den gleichen Namen (NICHT DIE IDE VERÄNDERN) für alle wichtigen Datenpunkte eines Gerätes oder ändert den Smartnamen nachträglich wie im Video von Elzershark gezeigt. Letzteres ist aber eh zu empfehlen, da im Blockly auch nur der Name angezeigt wird!