NEWS
[Projekt] ioGo # Smarthome to go 2.0
-
Hi ich habe mal zum Test eine Jahreslizenz gekauft und den Adapter sowie die App installiert.
Der Adapter restartet sich die ganze Zeit, sieht dann im Log aus aus, in Dauerschleife halt:
host.HomeServer 2019-12-18 18:17:40.962 info Restart adapter system.adapter.iogo.0 because enabled host.HomeServer 2019-12-18 18:17:40.962 error instance system.adapter.iogo.0 terminated with code 0 (OK) host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: toString: [Function] } host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: name: 'FirebaseError', host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: code: 'invalid-argument', host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: at forEach (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:458:13) host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: at /opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:20147:41 host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: at UserDataConverter.parseData (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:20105:25) host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: at UserDataConverter.parseObject (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:20146:13) host.HomeServer 2019-12-18 18:17:40.962 error Caught by controller[0]: at forEach (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:458:13) host.HomeServer 2019-12-18 18:17:40.961 error Caught by controller[0]: at /opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:20147:41 host.HomeServer 2019-12-18 18:17:40.961 error Caught by controller[0]: at UserDataConverter.parseData (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:20131:29) host.HomeServer 2019-12-18 18:17:40.961 error Caught by controller[0]: at UserDataConverter.parseScalarValue (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:20265:27) host.HomeServer 2019-12-18 18:17:40.961 error Caught by controller[0]: at ParseContext.createError (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:19918:16) host.HomeServer 2019-12-18 18:17:40.961 error Caught by controller[0]: at new FirestoreError (/opt/iobroker/node_modules/@firebase/firestore/dist/index.node.cjs.js:354:28) host.HomeServer 2019-12-18 18:17:40.961 error Caught by controller[0]: { FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: undefined (found in field states.``) iogo.0 2019-12-18 18:17:40.438 info (1790) Terminated (NO_ERROR): Without reason iogo.0 2019-12-18 18:17:40.437 info (1790) terminating iogo.0 2019-12-18 18:17:40.407 info (1790) triggered listener removed iogo.0 2019-12-18 18:17:40.407 info (1790) cleaned everything up... iogo.0 2019-12-18 18:17:40.406 error (1790) FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: undefined (found in field states.``) at new FirestoreError (/opt/iobroker/node_modules/@fi iogo.0 2019-12-18 18:17:40.406 error (1790) uncaught exception: Function DocumentReference.set() called with invalid data. Unsupported field value: undefined (found in field states.``) iogo.0 2019-12-18 18:17:40.274 info (1790) uploading values iogo.0 2019-12-18 18:17:40.050 info (1790) device update received: {"alive":true,"batteryCharging":false,"batteryLevel":0,"name":"David Handy","token":"XX"} iogo.0 2019-12-18 18:17:39.904 info (1790) uploading adapter iogo.0 2019-12-18 18:17:39.889 info (1790) uploading state iogo.0 2019-12-18 18:17:39.889 info (1790) uploading enum iogo.0 2019-12-18 18:17:39.888 info (1790) uploading instance iogo.0 2019-12-18 18:17:39.887 info (1790) uploading host iogo.0 2019-12-18 18:17:39.886 info (1790) checksummap geladen iogo.0 2019-12-18 18:17:39.431 info (1790) initialize app devices iogo.0 2019-12-18 18:17:39.424 info (1790) logged in as: XXX <= please keep this uid as your secret iogo.0 2019-12-18 18:17:39.424 info (1790) licence key found. licence valid until 2020-12-17 17:05:49 iogo.0 2019-12-18 18:17:38.831 info (1790) triggered listener removed
In der App sehe ich auch nichts (obwohl mit iogo Account eingeloggt), wenn ich auf den HOST in der App Klicke schmiert die App ab...
-
@echoDave Hi, welche Version der App und welche Version Version des Adapters nutzt du?
-
@echoDave es sieht so aus als wenn ein State bei dir das Attribut obj.common.states ohne einen Wert hat. Kannst du das prüfen?
-
@nis danke für die schnelle Antwort.
Die App ist frisch aus dem Store in Version 2.0.12 und Adapter auch frisch in der Version 0.4.17.Ich habe jetzt versucht die States rauszufinden mit folgendem Script:
$('state[id=*]').each(function (id, i) { var obj = getObject(id); if(obj.common.states != undefined) { var value = getState(id).val; if(value == undefined) { log(id+' hat den wert: '+value); } } });
Es kommen fast alle Homematic Geräte raus.
Beispiel: hm-rpc.0.MEQ1234567.1.DECALCIFICATION_WEEKDAY hat den wert: nullDas sind jetzt aber Datenpunkte die vom Homematic Adapter angelegt werden.
Viele Grüße, David
-
@echoDave poste mal bitte den kompletten RAW von dem Object, dann stelle ich das bei mir mal nach um den Fehler zu finden
-
bitte sehr (ist nur einer rausgepickt).
Ist es egal ob das Objekt einen Raum/Funktion zugewiesen hat oder nicht?{ "type": "state", "common": { "def": 0, "type": "number", "read": true, "write": true, "min": 0, "max": 6, "states": { "0": "SATURDAY", "1": "SUNDAY", "2": "MONDAY", "3": "TUESDAY", "4": "WEDNESDAY", "5": "THURSDAY", "6": "FRIDAY" }, "mobile": { "admin": {} } }, "native": { "DEFAULT": 0, "FLAGS": 1, "ID": "DECALCIFICATION_WEEKDAY", "MAX": 6, "MIN": 0, "OPERATIONS": 7, "TAB_ORDER": 8, "TYPE": "ENUM", "UNIT": "", "VALUE_LIST": [ "SATURDAY", "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY" ] }, "from": "system.adapter.hm-rpc.0", "ts": 1521568023696, "_id": "hm-rpc.0.MEQ1234567.1.DECALCIFICATION_WEEKDAY", "acl": { "object": 1636, "state": 1636 }, "enums": {}, "children": [], "user": "system.user.admin" }
-
@echoDave es sollte eine Funktion/Raum zugewiesen sein. Sonst ist der State uninteressant für den Adapter.
Der State sollte in obj.common.states etwas auffälliges haben.
Der eigentliche Value ist nicht wichtig.So in etwa, wobei ich nicht sicher sagen kann dass " == undefined" komplett richtig ist.
$('state[id=*]').each(function (id, i) { var obj = getObject(id); if(obj.common.states == undefined) { log(id+' hat den wert: '+value); } });
-
ich hätte so etwas erwartet oder ähnlich:
...
"states": "",
...{ "type": "state", "common": { "def": 0, "type": "number", "read": true, "write": true, "min": 0, "max": 6, "states": "", "mobile": { "admin": {} } }, "native": { "DEFAULT": 0, "FLAGS": 1, "ID": "DECALCIFICATION_WEEKDAY", "MAX": 6, "MIN": 0, "OPERATIONS": 7, "TAB_ORDER": 8, "TYPE": "ENUM", "UNIT": "", "VALUE_LIST": [ "SATURDAY", "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY" ] }, "from": "system.adapter.hm-rpc.0", "ts": 1521568023696, "_id": "hm-rpc.0.MEQ1234567.1.DECALCIFICATION_WEEKDAY", "acl": { "object": 1636, "state": 1636 }, "enums": {}, "children": [], "user": "system.user.admin" }
-
Ich glaube ich habe es jetzt mit folgendem Script rausgefunden, funktioniert nach dem löschen des Leeren States jetzt jedenfalls:
$('state[id=*]').each(function (id, i) { var states = getObject(id).common.states; if(typeof states == 'string') { log ("ID: "+id+" . state: "+states); } });
wie du vermutet hast wars ein "states":"" doch bei einem manuell erstelltem State.
Wie läuft die Kommunikation jetzt mit dem Adapter, über Server von dir? Falls ja wie schaut es mit der Sicherheit aus also Verschlüsselung?
Kann ich mit einem Account bei ioGo auf zwei Handys haben?
Viele Grüße, David
-
@echoDave sagte in [Projekt] ioGo # Smarthome to go 2.0:
Ich glaube ich habe es jetzt mit folgendem Script rausgefunden, funktioniert nach dem löschen des Leeren States jetzt jedenfalls:
$('state[id=*]').each(function (id, i) { var states = getObject(id).common.states; if(typeof states == 'string') { log ("ID: "+id+" . state: "+states); } });
wie du vermutet hast wars ein "states":"" doch bei einem manuell erstelltem State.
Cool, es sind meistens die manuell angelegten States
Wie läuft die Kommunikation jetzt mit dem Adapter, über Server von dir? Falls ja wie schaut es mit der Sicherheit aus also Verschlüsselung?
Es sind nicht meine Server. Es ist Infrastruktur von Google. Genau gesagt: https://firebase.google.com/
Kann ich mit einem Account bei ioGo auf zwei Handys haben?
Ja
-
danke
-
@nis
paar kleine Verbesserungen zu der App fallen mir nach zwei Tagen auf(meistens rund um Nachrichten).
- Android Benachrichtigungen muss man aktiv wegwischen damit sie verschwinden, klicke ich die nur an bleiben diese stehen.
- Bei Nachrichten einen Knopf "Alle Nachrichten löschen" oder noch besser eine Einstellung in der man sagen kann Nachrichten nach x Zeit löschen".
- Werden Bilder als Nachricht geschickt wäre es cool wenn man das Bild anklicken könnte um es im fullscreen sich anzuschauen/zoomen zu können.
- Bei Datenpunkten (vor allem Dimmer also wo Slider zur Werteinstellung angezeigt wird) gibts eine Überlappung mit dem eigentlichen Wert
Sonst muss ich sagen funktioniert die App und der Adapter bislang sehr gut. Betreibe jetzt einen Parallelbetrieb und lasse mit Nachrichten per ioGO und Telegram schicken, also oft ist sogar ioGo schneller da.
Allgemein ist es sehr komfortabel das Heim Mobil steuern zu können, ohne großen Aufwand in die Virtualisierung (wie es bei vis wäre) stecken zu müssen.
Ansonsten wäre es auch Top wenn man in der Adapterconfig eine Art Blacklist einführen könnte in der ich enums oder Objekte von der Übertragung in die App ausschließe.
Hintergrund: Ich habe einige Scripte am laufen die dynamisch Objekte in Abhängigkeit zueinander steuern. Deshalb habe ich auch ein paar "technische" enums diese brauche ich in der App im Prinzip nicht, die stören nur.Viele Grüße, David
-
@echoDave Vielen Dank für das Feedback. Da ist sehr viel dabei was ich gerne umsetze. Aktuell bin ich noch an dem doch leider sehr kompliziertem Thema "Geofence" dran, hoffe das läuft bald einigermaßen.
-
Ok Vielen Dank für die Rückmeldung, falls du Tester brauchst sag bescheid!
-
Ich habe mir heute etwas zu Weihnachten gegönnt und einen Accountzugang bekauft. Habe mir gedacht, dass ich über die Feiertage etwas "basteln" kann.
Der Adapter wird mit den Zugangsdaten grün und der Log sieht auch gut aus(iogo.0 2019-12-21 18:10:41.641 info (11504) licence key found. licence valid until 2020-12-20 13:45:41 )
Mit der App (2.0.12) komme ich leider gar nicht klar.
Meine IoGo Daten habe ich eingegeben. Im Infobildschirm steht: IoGo: iogo - connected
Nach sycc objects tit sich gar nichts.. Alle Datenbankwerte stehen auf 0.
Gibt es hier einen Trick?Gruß Ralf
-
@DocGame Kannst du bitte ein paar mehr Infos zu deinem System schreiben... Hast du Funktionen und/oder Räume angelegt? Sind dort States zugeordnet?
-
@nis Hier mal einige Bilder:
-
@DocGame Wie hast du den Adapter installiert? Hast du die Version aus dem latest oder stable repository genommen? Oder ist das eine Version direkt aus GitHub?
-
@nis Ich habe den Adapter von Github und die stable repository probiert... Immer das selbe.
-
@DocGame die GitHub Version wird nicht gehen. Nimm bitte eine offizielle Version aus stable/latest und poste das Log vom Start der Instanz.