NEWS
Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20)
-
@Mic ich bekomme ne simple Schaltung nicht zum laufen,
möchte abhängig vom battery level, eine (Sonoff)Steckdosenleiste an/aus schalten
das ganze eigentlich noch mit zusätzlicher Bedingung (habe ich aber erstmal rausgenommen) zur Vereinfachung, aber irgendwie will das nicht greifen, es passiert nichts. sämtliche Varianten mit > / >= / = oder auch < / <= / =Zielgerät
Anderer Auslöser
Zone
-
@Chaot sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
Eventuell wäre das die Überschrift "Bedingung" oder "Konditionen" treffender.
Nehme ich auf.
Was ich nicht ganz verstehe:
Ich kann unter "Auslöser" einen Cronjob anlegen.
Später in Zonen kann ich dann nochmal eine Zeitsteuerung eingeben. Macht das wirklich Sinn oder sorgt das eher für Verwirrung weil die User dort versuchen werden Cronjobs einzugeben.Auslöser sind ja z.B.:
- Wandschalter wird gedrückt
- Bewegungsmelder löst aus
- Fenster wird geöffnet
- oder eben z.B. "Donnerstag um 16:00" tritt ein.
In Zonen dient die Zeitsteuerung dazu, ob tatsächlich geschaltet wird. Das mag bei "Zeitabhängiger Auslöser" überflüssig klingen, aber auch hier, gerade in größeren Konfigurationen, einige Use Cases gerade in Verbindung mit mehreren Zonen. Wenn man das nicht braucht, in den Zonen "Immer" anklicken.
-
@crunchip sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
@Mic ich bekomme ne simple Schaltung nicht zum laufen,
möchte abhängig vom battery level, eine (Sonoff)Steckdosenleiste an/aus schalten
das ganze eigentlich noch mit zusätzlicher Bedingung (habe ich aber erstmal rausgenommen) zur Vereinfachung, aber irgendwie will das nicht greifen, es passiert nichts. sämtliche Varianten mit > / >= / = oder auch < / <= / =Gerade getestet und funktioniert bei mir mit Datenpunkt
smartcontrol.0.Test.brightness.Bathroom_bri
als Auslöser.
Teste bitte auch mal mit diesem Datenpunkt bei dir.
Was gibt denn das hier aus (JavaScript-Adapter)?
/** * Hey crunchip ;) * Gib hier mal den Datenpunkt des Battery-Levels ein: */ const stateBattery = 'xyz'; const battStateVal = getState(stateBattery).val; log(`[${stateBattery}] : Variablen-Typ: ${typeof battStateVal}, Wert: '${battStateVal}'`);
-
@Mic sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
Was gibt denn das hier aus
javascript.0 (1053) script.js.test-smartcontrol: [iogo.0.Mario.battery.level] : Variablen-Typ: number, Wert: '29'
@Mic sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
Teste bitte auch mal mit diesem Datenpunkt bei dir.
hab ich jetzt so eingetragen, Steckdose geht aber nicht an
-
@crunchip sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
[iogo.0.Mario.battery.level] : Variablen-Typ: number, Wert: '29'
Genau so sollte es sein
Hast du mal folgendes getestet?
@Mic sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
Gerade getestet und funktioniert bei mir mit Datenpunkt smartcontrol.0.Test.brightness.Bathroom_bri als Auslöser.
Teste bitte auch mal mit diesem Datenpunkt bei dir. -
@crunchip sagte in Test Adapter SmartControl 0.2.x GitHub (ab 18.08.20):
hab ich jetzt so eingetragen, Steckdose geht aber nicht an
Hast du denn den Datenpunkt auch geändert?
-
@Mic ja
-
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?