NEWS
Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen
-
@Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
eigene Datenpunkte dürfen nur unter 0_userdata.0 oder javascript.x sein...
Neee
Meine liegen auch unter Messwerte.0 oder Sytemvariablen.0
-
@Mic vielleicht könntest du die prio ein wenig höherschrauben es gibt vielleicht mehr von uns "assi-usern"
-
@Homoran sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
Meine liegen auch unter Messwerte.0 oder Sytemvariablen.0
Verstehe.
@liv-in-sky
Ach Quatsch, alles gut , du und @Homoran und wohl einige weitere haben die wohl halt einfach angelegt, auch weil es geht in den Objekten und aus Übersichtlichkeit.Ich schau mal. Idealerweise prüfe ich, ob hinter dem Hauptdatenpunkt "Messwerte.0" etc. ein "echter" Adapter ist, wenn ja, dann "ack:true", wenn nicht, dann kann zieht er die Einstellung von
-
klasse idee
-
@Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
weil es geht in den Objekten
zumindest ging es früher - jetzt nicht mehr (so einfach).
@Mic sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
und aus Übersichtlichkeit.
Ganz genau!
Natürlich muss man aufpassen, dass später nicht ein Adapter diesen Namespace belegt. Dann muss es Tatsächlich unter 0_userdata.0 - würde aber alles noch eine Ebene tiefer verschachteln.
-
@Mic mic sollte der alias ordner nicht eventuell auch integriert werden ???
-
@liv-in-sky
@Mic
Habe hier den passenden Fehler: -
@Mic
Das hier wirft er aus:
Ich glaube, das betrifft fast alle nördlich von Hannover, insbesondere die Nordlichter.
-
@liv-in-sky sagte in Aufruf: Neuen SmartControl-Adapter 0.1.0-alpha.x testen:
@Mic mic sollte der alias ordner nicht eventuell auch integriert werden ???
Bau ich auch gleich mit ein, danke. Werde jetzt umsetzen, Update folgt bald.
-
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?