NEWS
[Projekt] ioGo # Smarthome to go
-
das erklärt doch einiges in sachen push:-)
ich weiß nicht ob das wichtig ist: alle meine datenpunkte liegen unter einem order - welcher ein device ist
-
das erklärt doch einiges in sachen push:-)
ich weiß nicht ob das wichtig ist: alle meine datenpunkte liegen unter einem order - welcher ein device ist ` Sind die Datenpunkte selber zugeordnet oder nur das Device?
Gesendet von meinem Pixel 2 mit Tapatalk
-
hoffentlich verstehe ich die frage richtig:
mit zuordnung meinst du in den enums - ich habe jeden datenpunkt(states) im enum zugewiesen - die "ordner" (devices) nicht
müßte das auch gehen - also alles was unter einem ordener (device) ist auf einmal einbinden ?
4447_raum.png -
Frage war so gemeint.
Ja, du kannst auch nur das Device zuordnen. Dann in der App "sync children State" aktiveren und schon werden alle States mitgenommen die zu solchen devices gehören.
-
hab es schon ausprobiert - selbes verhalten - kann die states darin ändern - aber die scripts dahinter werden nicht getriggert
-
etwas neues:
habe mehrere datenpunkt über device(also alle ) eingebunden - einer hat keine role und enthält zahlen. ändere ich diesen - werden auch die scripts gestartet - hab extra ein teststcript angelegt
! {
! "from": "system.adapter.admin.0",
! "ts": 1523784556703,
! "common": {
! "name": "BADTuerZaehler",
! "role": "",
! "type": "number",
! "desc": "Manuell erzeugt",
! "unit": "",
! "min": 0,
! "max": 100,
! "def": 0,
! "read": true,
! "write": true
! },
! "native": {},
! "acl": {
! "object": 1636,
! "owner": "system.user.admin",
! "ownerGroup": "system.group.administrator",
! "state": 1636
! },
! "_id": "controll-own.0.MOTION.BADTuerZaehler",
! "type": "state"
! }aber nur dieser - die anderen z.b switch gehen nicht !
der hier geht nicht: wird zwar gesetzt - triggert aber nicht
! {
! "from": "system.adapter.admin.0",
! "ts": 1528792070421,
! "common": {
! "name": "BootSetting",
! "role": "switch",
! "type": "boolean",
! "desc": "Manuell erzeugt",
! "read": true,
! "write": true,
! "def": false
! },
! "native": {},
! "acl": {
! "object": 1636,
! "owner": "system.user.admin",
! "ownerGroup": "system.group.administrator",
! "state": 1636
! },
! "_id": "controll-own.0.MOTION.BootSetting",
! "type": "state"
! }vielleicht hilft das
-
noch was:
habe nun einen der datenpunkte auf state in der role geändert - dieser enthält auch zahlen - der funktioniert auch. ändere ich die zahl wird ein script ausgeführt.
ändere ich luefter1 auf state in role - ist der schalter weg und es steht false dafür - ändere ich das auf true wird das luefter script nicht gestartet - wenn ich aber 0 oder 1 eingebe startet der lüfter !!!!
-
noch was:
habe nun einen der datenpunkte auf state in der role geändert - dieser enthält auch zahlen - der funktioniert auch. ändere ich die zahl wird ein script ausgeführt.
ändere ich luefter1 auf state in role - ist der schalter weg und es steht false dafür - ändere ich das auf true wird das luefter script nicht gestartet - wenn ich aber 0 oder 1 eingebe startet der lüfter !!!! `
Ich blick nicht ganz durch… Wie genau funktioniert dein Trigger für die Skripte?
Kann es sein dass dort der Fehler liegt, irgendwie geht es bei dir mit Zahlen aber mit true/false nicht.
Poste mal bitte ein snippet von deinem Trigger.
Habe auch nachgeschaut, die App setzt kein ACK=true. Somit sollte es als command ausgewertet werden.
-
Neue Version 0.24.x als Beta verfügbar:
Für eine weitere Verbreitung der Push-Benachritigung muss nun ein Useraccount angelegt werden.
Damit wird sichergestellt, dass niemand böswillig Nachrichten an fremde Devices schicken kann.
Es wird der Adapter ioBroker.iogo in der aktuellen Version 0.0.7 oder neuer benötigt.
Useraccounts können in den Einstellungen angelegt werden:
-
Leider wird die Push Funktion nicht ewig for free bleiben können.
Es sind nur eine limitierte Anzahl kostenfrei verfügbar pro Monat.
Was wäre hier ein gangbarer Weg die Kosten für die Feature zu deckeln? (Kann leider nicht alles sponsorn)
-
Die Pushnotification funktionieren bei mir auf Anhieb thumbs up
Hast du für dich eine Featureliste, was damit noch umgesetzt werden soll? `
Featureliste ist im Kopf bei mir…
Ich würde die App dahingegend erweitern, dass es spezielle Visualisierungen für einzelne Adapter geben wird (z.B. daswetter, dwd, ...)
Das ergibt dann unendlich weitere Möglichkeiten auch für die Push-Messages (z.B. bei Auslösung einer Alarmanlage)
EDIT: Evtl. kannst du mal schauen, wieso er bei deiner Pushbenachrichtigung nicht anzeigt, wie lange es her ist, dass die Nachricht kam. Alle anderen Pushnofitications zeigen z.b. (vor 5min) `
Schau ich mir an -
ist seltsam - dieses verhalten ist mir schon mal aufgefallen - bin mir nicht mehr sicher wo dies war, aber ich glaube es war in nodered oder tasker(httpget) - auch dort konnte ich nicht mit true oder false arbeiten sondern nur mit 0 und 1 oder ich mußte mit true/false als string arbeiten. in der vis ist es egal, ob ich beim schalter-widgert bei min/max 0/1 oder false/true setze - es funktioniert dort immer
sorry - es scheint nicht an deiner app zu liegen, aber vielleicht hast du trotzdem eine idee dazu, ich habe leider zu wenig ahnung um solche fehler zu korrigieren.
hier mal der datenpunkt:
! {
! "_id": "controll-own.0.Luefter1",
! "type": "state",
! "common": {
! "name": "Luefter1",
! "role": "switch",
! "type": "boolean",
! "desc": "Manuell erzeugt",
! "read": true,
! "write": true,
! "def": false,
! "smartName": {
! "de": "lüfter 1, lüfter bett, lüfter 1"
! }
! },
! "native": {},
! "from": "system.adapter.admin.0",
! "ts": 1515444294048,
! "acl": {
! "object": 1636,
! "owner": "system.user.admin",
! "ownerGroup": "system.group.administrator",
! "state": 1636
! }
! }und das script
! on({id: "controll-own.0.Luefter1"/Luefter1/, change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! if (getState("controll-own.0.Luefter1").val == true) {
! setState("broadlink.0.learnedSignals.REVOLT1EIN"/REVOLT1EIN/, true);
! } else if (getState("controll-own.0.Luefter1").val == false) {
! setState("broadlink.0.learnedSignals.REVOLT1AUS"/REVOLT1AUS/, true);
! }
! });
4447_script-luefter.png -
Was genau machst du denn?
du schaltest mit seiner app den datenpunkt luefter1 und nichts passiert?
hast du mal mit log() in deinem script protokolliert, was in iobroker ankommt? Da du mit == prüfst, sollte dein Script auch auf 1 und 0 reagieren, denn dann ist der Variablentyp egal.
Ich denke eher, dass er gar nicht in die on Funktion springt.
-
ich hab mal mit anderen datgenpunkten gespielt
mit sonoff adapter: kann eingeschaltet werden - beim versuch auszuschalten springt der schalter in der app wieder zurück auf an - ausschalten nicht möglich
! {
! "_id": "sonoff.0.Sonoff12.POWER",
! "common": {
! "type": "boolean",
! "role": "switch",
! "read": true,
! "write": true,
! "storeMap": true,
! "name": "Sonoff12 POWER"
! },
! "native": {},
! "type": "state",
! "from": "system.adapter.sonoff.0",
! "ts": 1530877175850,
! "acl": {
! "object": 1636,
! "state": 1636
! }
! }und mit broadlink
funktioniert - sind aber sowas wie taster
! {
! "type": "state",
! "common": {
! "name": "REVOLT1EIN",
! "type": "boolean",
! "role": "button",
! "read": false,
! "write": true
! },
! "native": {
! "code": "b20e34000b1d0b1d1e0a0b1d1e0a1e0a1e0a1e0a0b1d1e0a0b1d1e0a1e0a0b1d0b1d1e0a1e0a0b1d0b1d0b1d1e0a1e0a1e0a1e0a0b00013b00000000"
! },
! "from": "system.adapter.broadlink.0",
! "ts": 1515415687245,
! "_id": "broadlink.0.learnedSignals.REVOLT1EIN",
! "acl": {
! "object": 1636,
! "state": 1636,
! "owner": "system.user.admin",
! "ownerGroup": "system.group.administrator"
! }
! } -
Was genau machst du denn?
du schaltest mit seiner app den datenpunkt luefter1 und nichts passiert?
hast du mal mit log() in deinem script protokolliert, was in iobroker ankommt? Da du mit == prüfst, sollte dein Script auch auf 1 und 0 reagieren, denn dann ist der Variablentyp egal.
Ich denke eher, dass er gar nicht in die on Funktion springt. `
doch es passiert schon etwas - der datenpunkt ändert sich im iobroker-admin - kann ich sehen - aber das script wird dadurch nicht gestartet. anders wenn ich die vis benutze - da wird der datenpunkt auch geändert und das script wird gestartet (getriggert) - beide male steht true im datenpunkt - aber noch besser - schalte ich in der app wird in der vis angezeigt, dass der lüfter an ist - wird grün bei mir - also die vis reagiert auf die app - nur das script nicht
-
alle meine eigen angelegten datenpunkte wollen in der app nicht funktionieren !
alles unter controll-own - ich weiß - ist falsch geschrieben
4447_all.png -
Deswegen würde ich mal ein log() einbauen, ob die on Funktion überhaupt getriggert wird.
ob das in blockly geht, keine ahnung. Ich programmiere in Javascript direkt.
schreib vor````
var value = obj.state.val;einfach mal ein```` log('ich bin ein test');
und schau mal, ob in deinem log Tab der Text erscheint, wenn du deinen luefter1 änderst. Alternativ kannst du das script auch in den debug Modus setzten, dann sollte die Ausgabe direkt in dem Fenster unter deinem script erscheinen.
-
hab das probiert - es wird getriggert - aber ob luefter=wahr oder falsch wird nicht erkannt - also wird nichts ausgeführt
wenn ich im script nicht sonst falls sondern sonst eingeben wird reagiert und log geschrieben
! javascript.0 2018-09-15 10:54:51.404 error script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: true
! javascript.0 2018-09-15 10:54:51.404 info script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: getState(id=controll-own.0.Luefter1, timerId=94) => {"val":"true","ack":false,"ts":1537001691395,"q":0,"from":"system.adapter.socketio.0","lc":15370
! javascript.0 2018-09-15 10:54:51.404 info script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: getState(id=controll-own.0.Luefter1, timerId=94) => {"val":"true","ack":false,"ts":1537001691395,"q":0,"from":"system.adapter.socketio.0","lc":15370
! javascript.0 2018-09-15 10:54:51.404 info script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: getState(id=controll-own.0.Luefter1, timerId=94) => {"val":"true","ack":false,"ts":1537001691395,"q":0,"from":"system.adapter.socketio.0","lc":15370
! javascript.0 2018-09-15 10:54:51.402 error script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: Trigger
4447_image_5.png -
so sieht das log aus - wenn ich mit der vis schalte
! javascript.0 2018-09-15 10:58:31.985 warn script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: setForeignState(id=broadlink.0.learnedSignals.REVOLT1AUS, state=true) - was not executed, while debug mode is active
! javascript.0 2018-09-15 10:58:31.985 info script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: setForeignState(id=broadlink.0.learnedSignals.REVOLT1AUS, state=true)
! javascript.0 2018-09-15 10:58:31.985 info script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: getState(id=controll-own.0.Luefter1, timerId=100) => {"val":false,"ack":false,"ts":1537001911976,"q":0,"from":"system.adapter.web.0","lc":1537001911
! javascript.0 2018-09-15 10:58:31.985 info script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: getState(id=controll-own.0.Luefter1, timerId=100) => {"val":false,"ack":false,"ts":1537001911976,"q":0,"from":"system.adapter.web.0","lc":1537001911
! javascript.0 2018-09-15 10:58:31.984 error script.js.Armin_Schalter.LEDuLUEFTERuLAMPE.Lüfter1: Triggerr -
ich habe dein Script bei mir mal eben nachgebaut, es funktioniert auf Anhieb über die APP einwandfrei. Es wird alles sauber in Javascript getriggert und ausgeführt.
Irgendwas stimmt aber in deiner Ausgabe nicht. Er gibt im Log Trigerr aus (doppelt r) in deiner Grafik finde ich diesen log eintrag aber nicht.
Was passiert denn in der logausgabe, wenn du per App schaltest?