NEWS
Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20)
-
Also in den Objekten den Datenpunkt geändert, und es hat nicht ausgelöst?
-
@Mic upps, das Stand noch auf null, hab nun 50 eingetragen, Steckdose ist an
-
ok, das heißt es geht also prinzipiell, nur nicht mit deinem Batteriedatenpunkt.
Hat sich denn dieser geändert? Denn nur dann wird ausgelöst. -
@Mic ja der ändert sich, zwar nicht jedes einzelne Prozent, aber das spielt ja keine Rolle, wird vom iogo Adapter/App gesteuert/übertragen.
Ich teste ja schon ne Ewigkeit, da wurde der DP schon etliche male aktualisierthab battery level Wert 36 im controller hinterlegt zum ausschalten, schaltet einfach nicht mit diesem DP, warum auch immer??
{ "type": "state", "common": { "name": "battery level", "desc": "battery level of device Mario", "type": "number", "role": "value.battery", "min": 0, "max": 100, "unit": "%", "read": true, "write": false },
Edit: @nis hab folgendes Problem, möchte den DP , zum schalten verwenden, kann ich aber leider nicht, da hier "ack:false"
kannst du das was machen? -
@crunchip
Da steht "Bestätigt: false", warum ist das so? Adapter-Datenpunkte müssen nämlichack:true
sein. -
@Mic das kommt so vom Adapter,
aber dann haben wir ja den "Fehler" -
@crunchip sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
aber dann haben wir ja den "Fehler"
Warum bestätigt der Adapter nicht mit true?
Aus https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/adapterdev.md
"Status" has "ack" flag as true and indicate that it is from device or service. E.g. if the weather adapter got new weather forecast, it will be published with ack=true or if homematic thermometer measures new temperature, it will be published with ack=true too. Even if the user physically will switch the light on, the new state will be published with ack=true.
Fehler des iogo-Adapters? Dann bitte dort ein Github-Issue aufmachen.
-
@Mic ok, dann frag ich dort mal nach.
Etwas ist mir beim ganzen Testen noch aufgefallen.
Beispiel:
Licht wurde durch BWM eingeschaltet (nach 10Min soll ausgeschaltet werden)
jetzt hab ich zwischenzeitlich durch testen / speichern, den Adapter ja neu gestartet, dadurch wurde scheinbar der bereits laufende Timer (10 min ) nicht mehr ausgeführt und Licht blieb an.
Ist mir jetzt schon paar mal passiert. -
@crunchip sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
Beispiel:
Licht wurde durch BWM eingeschaltet (nach 10Min soll ausgeschaltet werden)
jetzt hab ich zwischenzeitlich durch testen / speichern, den Adapter ja neu gestartet, dadurch wurde scheinbar der bereits laufende Timer (10 min ) nicht mehr ausgeführt und Licht blieb an.
Ist mir jetzt schon paar mal passiert.Das ist ein Feature
Bei jedem Speichern der Konfiguration wird ja der Adapter neu gestartet. ioBroker erfordert (sinnvollerweise!) bei Adapter-Stop (und ggf. dann Neustart) das Löschen aller laufender Timer. -
@crunchip sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
@Mic das kommt so vom Adapter,
aber dann haben wir ja den "Fehler"Gerne Issue in GitHub erstellen oder direkt anpassen und Pullrequest erstellen. Danke
-
@nis
Danke dass du dich hier meldest Geht um diesen Adapter, oder?
https://github.com/nisiode/ioBroker.iogo/Ich habe mal auf Github einen Blick in deinen Code geworfen, und mir gefällt deine Aufteilung in Module sehr, da muss ich mir noch was von abschauen Aber das nur nebenbei...
Wie gesagt, hab nur etwas durchgeklickt und das hier in der
device-service.js
gefunden:setDevice(id, data){ this.adapter.setState(id + '.name', data.name); this.adapter.setState(id + '.battery.level', data.batteryLevel); this.adapter.setState(id + '.battery.charging', data.batteryCharging); this.adapter.setState(id + '.token', data.token); this.adapter.setState(id + '.alive', data.alive); }
Was ich hier machen würde, (außer der State wird gleich danach mit ack:true vom Adapter bestätigt):
setDevice(id, data){ this.adapter.setState(id + '.name', {val:data.name, ack:true}); this.adapter.setState(id + '.battery.level', {val:data.batteryLevel, ack:true}); this.adapter.setState(id + '.battery.charging', {val:data.batteryCharging, ack:true}); this.adapter.setState(id + '.token', {val:data.token, ack:true}); this.adapter.setState(id + '.alive', {val:data.alive, ack:true}); }
Ich kann dir gerne auch einen Pull-Request machen, aber müsste wissen, ob du States noch wo anders setzt. Oder du machst selbst diese kleine Änderung
-
@Mic Mach gerne einen PR, die Anpassung sieht doch schon perfekt aus
-
Hallo,
Also ich bin auch recht begeistert von dem Adapter, schöne Arbeit. Hab jetzt schon längere Zeit immer mal wieder verschiedene Systeme getestet, FHEM, Nodered und jetzt seit kurzem Iobroker. So schnell hab ich meine Lichtsteuerung über Bewegungsmelder noch nie hinbekommen.
Eine Frage hätte ich aber, ich würde gerne gegen Abend die Lichter nicht mit 100% laufen lassen. Wie würde ich das in dem Adapter umsetzten? -
@nis sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
@Mic Mach gerne einen PR, die Anpassung sieht doch schon perfekt aus
-
@jay-jey sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
Also ich bin auch recht begeistert von dem Adapter, schöne Arbeit. Hab jetzt schon längere Zeit immer mal wieder verschiedene Systeme getestet, FHEM, Nodered und jetzt seit kurzem Iobroker. So schnell hab ich meine Lichtsteuerung über Bewegungsmelder noch nie hinbekommen.
Danke für dein tolles Feedback
Eine Frage hätte ich aber, ich würde gerne gegen Abend die Lichter nicht mit 100% laufen lassen. Wie würde ich das in dem Adapter umsetzten?
Würde es so machen:
-
Du legst eine Zone an, z.B. "Wohnlicht". Der ordnest du deine Lichter als "zu schaltende Zielgeräte zu.
-
Diese Zone kopierst du entsprechend oft, also wie viele unterschiedliche Zeiten du brauchst (z.B. Ab Sonnenuntergang 70%, dann ab 22:00 Uhr 30%, etc.).
-
Jetzt machst du in jeder dieser Zonen:
a) Unter "Ausführung" jeweils von wann bis wann diese gelten soll. z.B.
b) Dann klickst du auf den blauen Knopf (Lupe) bei "Zu schaltenden Zielgeräte":
c) Da machst du einen Doppelklick auf die entsprechenden Zielgeräte, und trägst den Zielwert ein, z.B. 70:
-
-
Das geht natürlich nur, falls was aktuell auslöst.
Wenn aber das Licht um 16:00 Uhr eingeschaltet wird, an bleibt, und bei Sonnenuntergang auf 70% gehen soll, dann brauchst du als "Zusätzliche Bedingung" eine Prüfung, ob Wohnlicht an ist:
Nun setzt du einen zeitabhängigen Auslöser, der in diesem Beispiel an jedem Tag zu Sonnenuntergang auslöst, aber auch nur, falls das Licht bereits an ist:
-
@Mic Verständnisfrage
hab deinen PR gesehen
wenn ich nun überhttps://github.com/Mic-M/ioBroker.iogo/tree/patch-1
installiere, müsste doch die Änderung greifen? -
@crunchip
Hmm, bin kein Github Pro und hab das noch nie versucht Theoretisch könnte das gehen, aber bitte erst mal in einer Testumgebung machen -
@crunchip
Falls du Bock hast, kannst auch die Adapter-Datei auf deiner ioBroker-Installation direkt bearbeiten - https://github.com/nisiode/ioBroker.iogo/pull/33/filesIst ja nur ein Block mit 5 Zeilen copy/paste. Nach Speichern und Adapter-Neustart sollte es greifen.
-
@Mic ich habs ja schon installiert, bekomme aber kein ack:true
Mit Git kenn ich mich noch gar nicht aus
ja die Zeilen hab ich schon gelesen, hatte ja schon vorgestern im Adapter gesucht, wo was zu ändern wäre, aber wie gesagt, das ist alles Neuland
Dann schmeiss ich doch mal meinen PC an und änder es direkt bei mir