Vhih mit ESP32

Mit Setdata wird das Data Objekt gefüllt meistens ein String. Dazu muss im Unit text stehen damit dieses dann angezeigt wird.
Setstate ist für den Zustand des Nodes verantwortlich. Der Zustand des Nodes ist z.B. nicht erreichbar , wird abgefragt oder auch vom Host gelöscht.

In deinem Fall glaube ich wirst du den State nicht brauchen.
Das Editable ist eigentlich ein numerischer Wert entweder 0 oder 1 es sei denn du hast da was geändert.

In den Enums stehen die Bedeutungen der State drin.

Am besten orientierst du dich ein wenig an Orginalen Geräten wie die sich verhalten und welche Attribute diese besitzen.

Solltest du in einem Gerät zweimal den gleichen Attributtype verwenden musst du noch die Instanzen hochzählen beginnend mit 0 . Ansonsten kommt es zu Fehlern bei homee.

Hallo @Micha, danke für Deine Antworten.

Du hast recht - setEditable ist ein uint8 - das habe ich falsch gemacht. Konnte nach Korrektur keinen Unterschied feststellen was zu erwarten war.

In den Enums stehen die Bedeutungen der State drin.
Welche enums meinst Du?
Diese hier?:

 CAAttributeType: {
    CAAttributeTypeNone: 0,
    CAAttributeTypeOnOff: 1,                        
    CAAttributeTypeDimmingLevel: 2,
    CAAttributeTypeCurrentEnergyUse: 3,
    CAAttributeTypeAccumulatedEnergyUse: 4,
    CAAttributeTypeTemperature: 5,
    CAAttributeTypeTargetTemperature: 6,
    CAAttributeTypeRelativeHumidity: 7,
    CAAttributeTypeBatteryLevel: 8,
    CAAttributeTypeStatusLED: 9,               
    CAAttributeTypeWindowPosition: 10,
    ...

Mit diesen Werten arbeite ich, aber ob und wie dann ein entsprechendes Element in der App dargestellt wird, hängt eben auch am verwendeten Profil. Mit Thermometern hat das ja noch ganz gut geklappt aber alles andere funktioniert nicht wie erwartet und gewünscht (Stichtwort Schalter / Taster)

Ok … ich habe mit 1 begonnen. Geändert auf 0 scheint es aber keine sichtbare Auswirkung zu haben. Wie ist das, wenn ich mehrere Geräte (nodes) habe? Starte ich dann bei jedem Node wieder bei 0? Das macht es ein klein wenig aufwändiger die Rückgabewerte vom Homee zuzuordnen.

Gutes Stichwort: Wo bekomme ich denn diese Info her - welche Geräte es gibt und welche Profile und Attribute jeweils verwendet werden?

Danke Dir nochmals!

Hier ein Link zu einer älteren enums.

Alternativ die ist etwas vollständiger aber ob die jetzt komplett ist weiß ich nicht.

http://homee-tool.de/enums.js

Danke Dir, diese Datei habe ich - die Version muss ich noch abgleichen aber die Standard-Geräte sind ja identisch.
Leider stellt sich für mich weiter die Frage, welches NodeProfil welche Attribute voraussetzt und wie diese dann in der Homee-App dargestellt werden. Das ein oder andere kann man sich ja zusammenreimen aber vieles eben auch nicht - gerade, wenn die Geräte exotischer oder komplexer werden.

Nur mal als ein schnelles Beispiel:
Ich habe gerade ein Gerät mit CANodeProfileOnOffSwitch + CAAttributeTypeOnOff erstellt
→ funktioniert wie gewünscht. Ich habe einen einfachen Schalter realisiert! :slight_smile:

Nun hätte ich gerne ein Thermometer mit einem Schalter (z.B. um per Remote die Display-Beleuchtung zu aktivieren):
CANodeProfileBinaryInputWithTemperatureSensor + CAAttributeTypeOnOff + CAAttributeTypeTemperature
In der App bekomme ich aber nur einen Schieberegler für die Temperatur angezeigt. Erst unter Gerät->Bearbeiten wird dann der Schalter als Konfigurationselement aufgeführt.

Verwendete ich aber anstatt CAAttributeTypeOnOff CAAttributeTypeBinaryInput, so sehe ich in der App plötzlich zwei Schieberegler - was ja für den Binär-Eingang erstmal nicht logisch erscheint.

Also wie bekomme ich es hin, dass neben dem Thermometer/Schieberegler ein Binäres Element (Schalter) erscheint.

Wie schon gesagt, dass ist nur ein Beispiel. Es soll verdeutlichen, dass sich die Suche nach der korrekten Kombination beliebig langwirrig gestalten kann.
Wenn’s hier eine Doku gäbe, wäre das ech 'ne feine Sache!

{"id":22,"name":"Garten","profile":15,"image":"nodeicon_dimmablebulb","favorite":0,"order":35,"protocol":1,"routing":0,"state":1,"state_changed":1735213937,"added":1448723369,"history":1,"cube_type":1,"note":"","services":7,"phonetic_name":"testwilly","owner":0,"security":0,"attributes":[{"id":106,"node_id":22,"instance":0,"minimum":0,"maximum":100,"current_value":0,"target_value":0,"last_value":0,"unit":"%25","step_value":1,"editable":1,"type":2,"state":1,"last_changed":1737375544,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"automations":["step"]}},{"id":107,"node_id":22,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"","step_value":1,"editable":1,"type":1,"state":1,"last_changed":1737375543,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"can_observe":[300],"automations":["toggle"],"history":{"day":35,"week":5,"month":1,"stepped":true}}},{"id":108,"node_id":22,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"","step_value":1,"editable":1,"type":63,"state":1,"last_changed":1657367695,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":375,"node_id":22,"instance":0,"minimum":0,"maximum":65000,"current_value":0,"target_value":0,"last_value":0,"unit":"Lux","step_value":1,"editable":0,"type":11,"state":1,"last_changed":1473103665,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"history":{"day":1,"week":26,"month":6}}},{"id":525,"node_id":22,"instance":0,"minimum":0,"maximum":100,"current_value":0,"target_value":0,"last_value":0,"unit":"","step_value":1,"editable":0,"type":0,"state":1,"last_changed":1475485110,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":610,"node_id":22,"instance":0,"minimum":0,"maximum":0,"current_value":0,"target_value":0,"last_value":0,"unit":"text","step_value":1,"editable":0,"type":44,"state":1,"last_changed":1657367280,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"3.52","name":""},{"id":611,"node_id":22,"instance":0,"minimum":0,"maximum":0,"current_value":0,"target_value":0,"last_value":0,"unit":"text","step_value":1,"editable":0,"type":45,"state":1,"last_changed":1657367280,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"2.02","name":""},{"id":3219,"node_id":22,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"","step_value":1,"editable":1,"type":309,"state":1,"last_changed":1657367696,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":4181,"node_id":22,"instance":0,"minimum":0,"maximum":1,"current_value":1,"target_value":1,"last_value":0,"unit":"","step_value":1,"editable":1,"type":385,"state":1,"last_changed":0,"changed_by":0,"changed_by_id":0,"based_on":0,"data":"","name":""}]}

Das ist ein vollständiges Profil eine Fibaro Up Dimmer mit all seinen Attributen. Und genauso musst du dann auch mit deinen Geräten vorgehen. homee hat ein ein Paar Änderungen an den Attributen scheinbar vorgenommen so das die Version der ESP Lib nicht ganz aktuell ist.

hi micha - jetzt warst Du etwas schneller mit Deiner Antwort als ich mit meiner Überarbeitung.
Vielleicht ist das ja der entscheidende Link der mir fehlt: Wo finde ich denn diese Profil-Definitionen für alle Geräte?

Das hier ist ein Enocean HK Thermostat

{"id":1458,"name":"Keller%20Hobby%20Heizk%C3%B6rper","profile":3006,"image":"nodeicon_radiator","favorite":0,"order":70,"protocol":3,"routing":0,"state":1,"state_changed":1737282862,"added":1645881233,"history":1,"cube_type":3,"note":"%23%20AFRISO%20AVD%2020-D","services":7,"phonetic_name":"","owner":58,"security":0,"attributes":[{"id":3935,"node_id":1458,"instance":0,"minimum":0,"maximum":4,"current_value":1,"target_value":1,"last_value":0,"unit":"n%2Fa","step_value":1,"editable":0,"type":33,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":3936,"node_id":1458,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"n%2Fa","step_value":1,"editable":0,"type":69,"state":1,"last_changed":1645881234,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"automations":["reset"],"history":{"day":182,"week":26,"month":6,"stepped":true}}},{"id":3937,"node_id":1458,"instance":0,"minimum":10,"maximum":30,"current_value":17.215,"target_value":17.215,"last_value":17.215,"unit":"%C2%B0C","step_value":0.1,"editable":0,"type":5,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"history":{"day":1,"week":26,"month":6}}},{"id":3938,"node_id":1458,"instance":0,"minimum":10,"maximum":30,"current_value":17.5,"target_value":17.5,"last_value":17.5,"unit":"%C2%B0C","step_value":0.1,"editable":1,"type":6,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"can_observe":[6],"automations":["step"],"history":{"day":35,"week":5,"month":1,"stepped":true}}},{"id":3939,"node_id":1458,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"n%2Fa","step_value":1,"editable":0,"type":70,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"53","name":"","options":{"automations":["reset"],"history":{"day":182,"week":26,"month":6,"stepped":true}}},{"id":3940,"node_id":1458,"instance":0,"minimum":0,"maximum":100,"current_value":1,"target_value":1,"last_value":1,"unit":"%25","step_value":1,"editable":0,"type":18,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"history":{"day":1,"week":26,"month":6}}},{"id":3941,"node_id":1458,"instance":0,"minimum":0,"maximum":1,"current_value":0,"target_value":0,"last_value":0,"unit":"n%2Fa","step_value":1,"editable":1,"type":91,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":3942,"node_id":1458,"instance":0,"minimum":5,"maximum":20,"current_value":10,"target_value":10,"last_value":10,"unit":"min","step_value":5,"editable":1,"type":29,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":3943,"node_id":1458,"instance":0,"minimum":0,"maximum":270,"current_value":270,"target_value":270,"last_value":270,"unit":"%C2%B0","step_value":90,"editable":1,"type":90,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":""},{"id":3944,"node_id":1458,"instance":0,"minimum":20,"maximum":80,"current_value":20,"target_value":20,"last_value":20,"unit":"%C2%B0C","step_value":1,"editable":0,"type":89,"state":1,"last_changed":1737393366,"changed_by":1,"changed_by_id":0,"based_on":1,"data":"","name":"","options":{"history":{"day":1,"week":26,"month":6}}},{"id":4291,"node_id":1458,"instance":0,"minimum":0,"maximum":1,"current_value":1,"target_value":1,"last_value":0,"unit":"","step_value":1,"editable":1,"type":385,"state":1,"last_changed":0,"changed_by":0,"changed_by_id":0,"based_on":0,"data":"","name":""}]}

Ich kann ja mal ein Heatit Thermostat mit Display anlernen und die Daten ziehen.

Probiere mal bitte diese Profile
CANodeProfileRoomThermostat: 3003,
CANodeProfileRoomThermostatWithHumiditySensor: 3004,

Hi Micha,

ich habe das Profil 3006 „Keller-Hobby-Heizkörper“ in meinen C-Code übertragen. Es macht etwas und es sieht soweit sinnvoll aus. Spaßeshalber habe ich ein weiteres Attribut vom Typ 1 (CAAttributeTypeOnOff) hinzugefügt. Der neue Schalter erschien tatsächlich, aber unter „Gerät bearbeiten“ und nicht wie erhofft über/unter dem Schieberegler für die Temperatur, wo ihn jeder bedienen kann.
Gleiche Attribute aber mit Profil 3004 hatte zur Folge, dass einige der bisherigen Messwerte nun unter Gerätestatus angezeigt wurden.
Profil 3003 brachte auch keine neuen Erkenntnisse.

Aktuell bleibt es leider bei meinen vielen Fragezeichen:
Woher weiß ich, welches Attribut bei welchem Node-Profile benötigt wird oder nur optional ist und wo / wie es am Ende in der App dargestellt wird.
Auch wenn ich ein paar konkrete Vorstellungen für meine Anwendung habe, wäre es mir lieber, ich würde das generelle System hinter den Profilen und Attributen verstehen bzw. eine entsprechende Doku finden.

Das generelle System hinter den Profilen kannst du nur aus dem Code der App entnehmen wie diese dargestellt werden.
Sicherlich könnte auch homee dazu Auskunft geben aber leider wird das wohl nicht geschehen.

Hallo Micha,

ich wollte noch mal Rückmeldung geben, dass meine Fußbodenheizungssteuerung nun soweit fertig ist (pünktlich zum Frühjahr).
Das grundsätzliche Rätsel was welcher Node bzw. welches Attribute braucht bzw. bewirkt ist allerdings geblieben. Aktuell würde ich gerne eine Rolladensteuerung über einen ESP32 einbinden und stehe wieder vor der Frage, welche Attribute welche Buttons in der App hervorzaubern.
Naja, vielleicht schaffe ich es ja bis zum Herbst :wink:

Bei Gelegenheit werde ich in einem extra Thread das Projekt vorstellen.

Danke noch mal für Deine Hilfe.

hier die versprochene Projektbeschreibung:

Fußbodenheizungssteuerung via vhih und Bluetooth Raumthermometer

1 „Gefällt mir“

Guten Abend allerseits,

ich wollte heute Abend im Rahmen eines kleinen neuen Projektes einen ESP32 mit vhih mit meinem homee verbinden - also nichts Besonderes, nichts Neues.
Nur leider kam aber dieses mal bei Verbinden diese Fehlermeldung:
grafik

Aktuell kann ich mir das nicht erklären außer vielleicht dadurch, dass homee beim letzten Update etwas geändert hat. Meine bisher eingebundenen ESP32-Geräte funktionieren aber noch.

Hatte von euch jemand schon mal diesen Fehler und konnte ihn beheben oder kann jemand bestätigen, dass das Problem neu ist … bzw. bei ihm mit aktueller Brain-Cube-FW (2.42.1) nicht auftritt?

Danke schon mal!

ist neu und bekannt

folgendes Workaround gibt es:

1 „Gefällt mir“

Guten Abend
Das Problem hatte ich auch schon. Gib mal anstelle des homee ID die IP Adresse ein, dann Benutzernamen und anschließend das Passwort - hat bei mir funktioniert.

3 „Gefällt mir“

Das hat funktioniert.
Spannend! :face_with_monocle:

Manchmal sind die Lösungen so naheliegend (und unerklärlich).

1 „Gefällt mir“

Freut mich das es geklappt hat :+1:

2 „Gefällt mir“

ah … super, danke Dir … dann werde ich wohl auch auf die neue Version warten hoffen Hoffentlich kommt sie sehr bald - dann kann man den Weihnachtsurlaub wenigstens noch produktiv nutzen :slight_smile:

Darauf solltest du nicht hoffen.:man_shrugging:

Was sagt denn Dein Bauchgefühl? Du bist schon etwas länger und intensiver mit dabei.
… muss man am Ende sogar damit rechnen, dass der vhih dauerhaft nicht mehr funktionieren wird?

Ich denke das es ein Fehler ist und wenn dem nicht so sein sollte muss ich mal schauen ob sich da noch was drehen lässt. Müsste mal testen wenn ich den Orginal homee an nem virtuellen Anlernen und schauen was er sendet. Aber warten wir es mal ab.

1 „Gefällt mir“