NEWS
Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen
-
Anderes Acknowledge für eure eigenen Datenpunkte wie unter "Messwerte.0" ist jetzt eingebaut, ebenso inklusive alias.0, etc.
Siehe Version 0.1.0-alpha.7 auf Github.
Falls es interessiert, so mache ich das jetzt:
/** * Verify acknowledge (ack) once a state was changed. * * In General: Any state changes of states will be ignored, if acknowledge (ack) = false. * The reason is that adapters confirm states by the acknowledge "ack" flag (setting to true). * Reference: https://forum.iobroker.net/post/448606 * * Exception 1: States under javascript.x/0_userdata.0/alias.x: For states created by users under, this behavior can be changed in the adapter options. * Exception 2: States under smartcontrol.x.: ack:false only. * Exception 3: States which are not under a "real" adapter namespace, so like "Messwerte.0". Reason: Several users have created * own states in the object main tree, like "Messwerte.0". https://forum.iobroker.net/post/461189 * * @param {string} statePath - State Path * @param {ioBroker.State|null|undefined} stateObject - State object * @return {Promise<boolean>} false if state change shall be ignored due to the ack (or error occurred), otherwise true. * */ async isAckPassing(statePath, stateObject) { try { if(!stateObject || !statePath) return false; const namespace = `${statePath.split('.')[0]}.${statePath.split('.')[1]}`; // like sonos.1 let isUserState = false; if (statePath.startsWith('javascript.') || statePath.startsWith('0_userdata.0') || statePath.startsWith('alias.')) isUserState = true; if(!isUserState) { // Check if state is under a "real" adapter namespace. const isRealAdapter = await this._adapter.getForeignObjectAsync(`system.adapter.${namespace}`); if (!isRealAdapter) isUserState = true; } if (isUserState) { if (!this._adapter.config.triggerStatesAck || this._adapter.config.triggerStatesAck == 'false') { if (stateObject.ack == false) { return true; } else { return false; } } else if (this._adapter.config.triggerStatesAck == 'true') { if (stateObject.ack == true) { return true; } else { return false; } } else { // any (ack: true or false) return true; } } else if (statePath.startsWith(`${this._adapter.namespace}.`)) { // Any states under this adapter instance, we require ack = false; if (stateObject.ack == false) { return true; } else { return false; } } else { // For any other "real" adapter state changes, we require ack = true if (stateObject.ack == true) { return true; } else { return false; } } } catch (error) { this.dumpError('[isAckPassing()]', error); return false; } } ```
-
@MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
@liv-in-sky
@Mic
Habe hier den passenden Fehler:Schau mal bitte ob es jetzt geht mit 0.1.0-alpha.7
-
@Mic Bin gerade am installieren. Das geht ja wahnsinnig schnell voran
-
@Mic
Bisher sieht es gut aus. Der Zeit-Trigger macht Probleme: -
@MartyBr
sehr gut schon mal.Zur Fehlermeldung:
Ist der Trigger (=Auslöser) sowohl unter "4. ZONEN" eingebunden und gibt es auch eine gültigen Eintrag unter "5. ZEITPLÄNE"?Falls alles ja: Bitte mach folgendes:
Also lade die Konfig herunter und poste sie hier in Code-Tags. Achtung: Vorher ggf. um personenbezogene Sachen bereinigen...
Danke -
@Mic
Hier die config:{ "_id": "system.adapter.smartcontrol.0", "common": { "name": "smartcontrol", "version": "0.1.0-alpha.7", "title": "Smart Control", "authors": [ "Mic-M <iob.micm@gmail.com>" ], "keywords": [ "smart", "control", "rooms", "groups", "motion sensors", "devices", "switches", "lights", "trigger", "schedule", "zones" ], "license": "MIT", "platform": "Javascript/Node.js", "main": "main.js", "icon": "smartcontrol.png", "enabled": true, "extIcon": "https://raw.githubusercontent.com/Mic-M/ioBroker.smartcontrol/master/admin/smartcontrol.png", "readme": "https://github.com/Mic-M/ioBroker.smartcontrol/blob/master/README.md", "loglevel": "info", "mode": "daemon", "type": "logic", "compact": true, "connectionType": "local", "dataSource": "poll", "materialize": true, "dependencies": [ { "js-controller": ">=1.4.2" } ], "installedFrom": "https://github.com/Mic-M/ioBroker.smartcontrol/tarball/3bccfdb2bfbde4647b34f2f07d2b2299abde42d9", "installedVersion": "0.1.0-alpha.7", "host": "iobroker" }, "native": { "exceedMidnight": true, "motionNoBriIfTimer": true, "triggerStatesAck": "false", "limitTriggerInterval": "3", "extendedInfoLog": true, "tableTriggerMotion": [ { "active": true, "name": "Motion Wohnzimmer Süd", "stateId": "hm-rpc.2.000918A98BEDE4.1.MOTION", "stateVal": "true", "duration": "180", "briStateId": "hm-rpc.2.000918A98BEDE4.1.ILLUMINATION", "briThreshold": "10" }, { "active": true, "name": "Motion Wohnzimmer Nord", "stateId": "hm-rpc.2.000918A98BEDEF.1.MOTION", "stateVal": "true", "duration": "180", "briStateId": "hm-rpc.2.000918A98BEDEF.1.ILLUMINATION", "briThreshold": "10" }, { "active": false, "name": "Motion Bathroom", "stateId": "smartcontrol.0.Test.trigger.Bathroom_motion", "stateVal": "true", "duration": "10", "briStateId": "smartcontrol.0.Test.brightness.Bathroom_bri", "briThreshold": "100" }, { "active": false, "name": "Motion Hallway Sensor #1", "stateId": "smartcontrol.0.Test.trigger.Hallway1_motion", "stateVal": "true", "duration": "120", "briStateId": "smartcontrol.0.Test.brightness.Hallway1_bri", "briThreshold": "70" }, { "active": false, "name": "Motion Hallway Sensor #2", "stateId": "smartcontrol.0.Test.trigger.Hallway2_motion", "stateVal": "true", "duration": "120", "briStateId": "smartcontrol.0.Test.brightness.Hallway2_bri", "briThreshold": "60" } ], "tableTriggerDevices": [ { "active": true, "name": "Temperatur Wohnzimmer größer 23", "stateId": "alias.0.Temperatur.Wohnzimmer.Wohnzimmer-Temp-Mittel", "stateVal": ">23" }, { "active": true, "name": "Temperatur Wohnzimmer kleiner 23", "stateId": "alias.0.Temperatur.Wohnzimmer.Wohnzimmer-Temp-Mittel", "stateVal": "<=23" }, { "active": false, "name": "Wall Switch Bathroom", "stateId": "smartcontrol.0.Test.trigger.Bathroom_wall-switch", "stateVal": "true" }, { "active": false, "name": "Wall Switch Hallway #1", "stateId": "smartcontrol.0.Test.trigger.Hallway1_wall-switch", "stateVal": "true" }, { "active": false, "name": "Wall Switch Hallway #2", "stateId": "smartcontrol.0.Test.trigger.Hallway2_wall-switch", "stateVal": "true" }, { "active": false, "name": "Relax Area Person Sits Indicator", "stateId": "smartcontrol.0.Test.trigger.RelaxPersonSitting", "stateVal": "true" } ], "tableTriggerTimes": [ { "active": true, "name": "30 Minuten vor Sonnenuntergang", "time": "sunset-30", "additionalConditions": [], "never": [] }, { "active": true, "name": "60 Minuten vor Sonnenuntergang", "time": "sunset-60", "additionalConditions": [], "never": [] }, { "active": false, "name": "Every hour at minute 42", "time": "42 * * * *", "additionalConditions": [], "never": [] }, { "active": false, "name": "At 22:00 on every day-of-week from Monday through Friday", "time": "0 22 * * 1-5", "additionalConditions": [], "never": [] }, { "active": false, "name": "At 04:05 on Sunday", "time": "5 4 * * sun", "additionalConditions": [], "never": [] }, { "active": false, "name": "30 Minutes after Sunset", "time": "sunset+30", "additionalConditions": [], "never": [] } ], "tableTargetDevices": [ { "active": true, "name": "Wohnzimmer Schreibtischlampe", "onState": "hm-rpc.1.OEQ0478213.1.STATE", "onValue": "true", "offState": "hm-rpc.1.OEQ0478213.1.STATE", "offValue": "false" }, { "active": true, "name": "Wohnzimmer Ecklampe", "onState": "hm-rpc.1.OEQ0478215.1.STATE", "onValue": "true", "offState": "hm-rpc.1.OEQ0478215.1.STATE", "offValue": "false" }, { "active": true, "name": "Wohnzimmer Tischlampe", "onState": "zigbee.0.14b457fffe2be766.state", "onValue": "true", "offState": "zigbee.0.14b457fffe2be766.state", "offValue": "false" }, { "active": false, "name": "Bathroom Light", "onState": "smartcontrol.0.Test.light.Bathroom", "onValue": "true", "offState": "smartcontrol.0.Test.light.Bathroom", "offValue": "false" }, { "active": false, "name": "Bathroom Radio", "onState": "smartcontrol.0.Test.radio.Bathroom", "onValue": "Smooth Jazz", "offState": "smartcontrol.0.Test.radio.Bathroom", "offValue": "Musik aus" }, { "active": false, "name": "Hallway Light", "onState": "smartcontrol.0.Test.light.Hallway", "onValue": "true", "offState": "smartcontrol.0.Test.light.Hallway", "offValue": "false" }, { "active": false, "name": "Relax Area Ceiling Light", "onState": "smartcontrol.0.Test.light.RelaxAreaCeiling", "onValue": "true", "offState": "smartcontrol.0.Test.light.RelaxAreaCeiling", "offValue": "false" }, { "active": false, "name": "Relax Area Wall Light", "onState": "smartcontrol.0.Test.light.RelaxAreaWall", "onValue": "true", "offState": "smartcontrol.0.Test.light.RelaxAreaWall", "offValue": "false" } ], "tableCombinedDevices": [], "tableZones": [ { "active": true, "name": "Wohnzimmer", "triggers": [ "Motion Wohnzimmer Süd", "Motion Wohnzimmer Nord" ], "targets": [ "Wohnzimmer Schreibtischlampe", "Wohnzimmer Ecklampe", "Wohnzimmer Tischlampe" ] }, { "active": false, "name": "Hallway", "triggers": [ "Motion Hallway Sensor #1", "Motion Hallway Sensor #2", "Wall Switch Hallway #1", "Wall Switch Hallway #2" ], "targets": [ "Hallway Light" ] }, { "active": false, "name": "Relax Area", "triggers": [ "Relax Area Person Sits Indicator" ], "targets": [ "Relax Area Ceiling Light", "Relax Area Wall Light" ] }, { "active": false, "name": "Bathroom Ground Floor", "triggers": [ "Motion Bathroom", "Wall Switch Bathroom" ], "targets": [ "Bathroom Light", "Bathroom Radio" ] } ], "tableConditions": [ { "active": true, "name": "Haustür geschlossen", "conditionState": "hm-rpc.1.NEQ1480228.1.STATE", "conditionValue": "false" }, { "active": true, "name": "Jemand Anwesend", "conditionState": "0_userdata.0.Anwesenheit.Anwesenheit", "conditionValue": "true" }, { "active": true, "name": "Niemand Anwesend", "conditionState": "0_userdata.0.Anwesenheit.Anwesenheit", "conditionValue": "false" }, { "active": true, "name": "Feiertag Heute", "conditionState": "feiertage.0.heute.boolean", "conditionValue": "true" }, { "active": true, "name": "Feiertag Morgen", "conditionState": "feiertage.0.morgen.boolean", "conditionValue": "true" }, { "active": false, "name": "Public Holiday Today", "conditionState": "smartcontrol.0.Test.condition.isHolidayToday", "conditionValue": "true" }, { "active": false, "name": "Is Front Door Locked?", "conditionState": "smartcontrol.0.Test.condition.isFrontDoorLocked", "conditionValue": "true" }, { "active": false, "name": "No one is present", "conditionState": "smartcontrol.0.Test.condition.isAnyonePresent", "conditionValue": "false" }, { "active": false, "name": "One or more are present", "conditionState": "smartcontrol.0.Test.condition.isAnyonePresent", "conditionValue": "true" } ], "tableSchedules": [ { "active": true, "name": "Wohnzimmer", "start": "sunset-60", "end": "22:00", "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "additionalConditions": [ "Jemand Anwesend" ], "never": [ "Niemand Anwesend" ] }, { "active": false, "name": "Relax Area", "start": "sunset+30", "end": "sunrise", "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "additionalConditions": [ "One or more are present" ], "never": [] }, { "active": false, "name": "Hallway", "start": "sunset-20", "end": "22:00", "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": false, "sun": false, "additionalConditions": [ "One or more are present" ], "never": [ "Public Holiday Today" ] }, { "active": false, "name": "Hallway", "start": "sunset-20", "end": "1:00", "mon": false, "tue": false, "wed": false, "thu": false, "fri": false, "sat": true, "sun": true, "additionalConditions": [ "One or more are present" ], "never": [] }, { "active": false, "name": "Bathroom Ground Floor", "start": "06:00", "end": "09:00", "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": false, "sun": false, "additionalConditions": [ "Public Holiday Today" ], "never": [ "No one is present" ] }, { "active": false, "name": "Bathroom Ground Floor", "start": "08:00", "end": "11:00", "mon": false, "tue": false, "wed": false, "thu": false, "fri": false, "sat": true, "sun": true, "additionalConditions": [], "never": [ "No one is present" ] } ] } }
-
verständnisfrage
habe
das einschalten funktioniert jetzt- aber wie wird ausgeschalten
wird der wert getoggelt oder woher weiß der adapter , wann true oder falls geschalten werden kann/soll
-
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
verständnisfrage
Super Frage. Derzeit ist es wie folgt umgesetzt:
Unter 1. ZIELGERÄTE angelegte Geräte werden "eingeschaltet", sobald ein Trigger aktiviert, bei dir "Proxmox Temp zu hoch". Ausgeschalten werden diese nur automatisch, wenn ein Bewegungsmelder einschaltete, dafür sind dann auch die Ausschalt-Datenpunkte.Teste doch mal folgendes als zusätzliches Zielgerät:
Update 21:42:
Alles andere hast du wohl eh schon gemacht, aber habs hier mal beschrieben gehabt.Dann neue Zone in 4. ZONEN "Proxmox Lüfter aus" und da diesen Auslöser rein.
Zuletzt noch unter 5. ZEITPLÄNE eine neue Zeile, damit die Zone "Proxmox Lüfter aus" aktiviert ist.Finde ich selbst auch suboptimal, aber solche Sachen stellen sich jetzt erst dank eurer Tests heraus
Muss mir noch was "smarteres" überlegen, um dem Adapter-Namen gerecht zu werden -
Evtl. braucht es hier eine Zusatzoption:
Also Tabellenspalte mit Auswahl "einschalten/ausschalten". Dann wird - falls "ausschalten" - auch der entsprechende Ziel-Geräte-Datenpunkt zum Ausschalten gezogen.
-
@MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
Hier die config:
Dein Trigger (Auslöser)
ist nicht in"5. ZEITPLÄNE" (log in English "schedule table" ) angelegt"4. ZONEN" angelegt.
Für jeden Auslöser muss es unter"5. ZEITPLÄNE""4. ZONEN" eine Zeile geben, in der der Auslöser unter "Auslöser"-Spalte erscheint. Daher ist die Fehlermeldung in Ordnung.Ich bin selbst noch unglücklich mit dem Begriff "ZEITPLÄNE" (oder Englisch: Schedules), also wenn wer einen besseren Vorschlag hat zur Benennung, bitte her damit
(korrigiert um 22:14)
-
Namensideen statt "5. ZEITPLÄNE"
- Umsetzung
- Zusammenführung
- Finalisierung
- (MartyBr) Fertigstellung
Gefällt mir alles noch nicht so gut. Weitere Vorschläge?
-
@Mic
Ich habe den Trigger unter 5. eingetragen. Hilft aber nicht:
Vorschlag für den Punkt 5:
Fertigstellung -
Ich gehe jetzt mal in Ruhemodus. Morgen teste ich gerne weiter.
Dank euch allen -
@MartyBr sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
@Mic
Ich habe den Trigger unter 5. eingetragen. Hilft aber nicht:
Den Trigger ergänzt du in der entsprechenden Zeile unter 4. ZONEN. Nicht in 5. ZEITPLÄNE, die lösen final dann nur die Trigger aus, wenn Bedingungen alle zutreffen.
Gute Nacht und danke für deine Tests
Update 22:13
sorry, habe dich fehlgeleitet oben, der Auslöser muss in "4. ZONEN" auch als Auslöser hinzugefügt werden. Vergiss das mit "5. ZEITPLÄNE" bitte. Dort muss dann aber auch die entsprechende Zone aufgenommen werden. (ich korrigiere oben)
-
oder hier noch eine spalte wo man dann ein oder ausschalten auswählen kann:
habe es so wie im bild - funktioniert - hatte ich auch schon vorher überlegt, dachte aber, dass ich etwas übersehen hätte
-
@Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
Umsetzung
Zusammenführung
Finalisierung
(MartyBr) FertigstellungAUSFÜHRUNg
DURCHFÜHRUNG
AKTIVIERUNG -
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
oder hier noch eine spalte wo man dann ein oder ausschalten auswählen kann:
Das geht nicht, weil hier Auslöser auch Bewegungsmelder sind, die eben nur anschalten wenn Bewegung an, und aus, wenn Bewegung aus. Daher die Idee, das gleich hier zu machen bei 3. AUSLÖSER > Andere Auslöser:
-
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
habe es so wie im bild - funktioniert
Ok, freut mich, ist ja alles noch sehr experimentell
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
AUSFÜHRUNG
Das gefällt mir am besten! Werde jetzt umbennen
-
@Mic Combination
-
Rename nun vollzogen mit 0.1.0-alpha.8