Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleaning Schedule / Reinigungsplan als "JSON Table" #117

Open
Moe-1988 opened this issue Jul 7, 2020 · 0 comments
Open

Cleaning Schedule / Reinigungsplan als "JSON Table" #117

Moe-1988 opened this issue Jul 7, 2020 · 0 comments

Comments

@Moe-1988
Copy link

Moe-1988 commented Jul 7, 2020

Hallo zusammen.
Erstmal ein riesiges Lob an die Entwickler von diesem Adapter. Top Arbeit!

Dies soll weniger ein Problem, mehr eine Idee für das nächste Update sein :)

Der Datenpunkt "mihome-vacuum.0.history.allTableJSON" ist genial geeignet für das Vis.
Darum Dachte ich mir, warum nur den Reinigungsverlauf darstellen, wenn man jetzt mit der neuen Timer Funktion so nen tollen Reinigungsplan aufstellen kann.

Ich selbst bin absoluter Hobby Programmierer, darum steinigt mich bitte nicht für den Code :)

Die Idee ist, aus den Timern Datenpunkten ein Table JSON zu erstellen. Dies habe ich schon mal hinbekommen. Jedoch muss jeder Timer Datenpunkt manuell angegeben werden.
Vllt gibt es hier eine Möglichkeit, alle Timer direkt wo anders ab zugreifen...

``var x, myjson, ID0, ID, ID1, ID2, ID3; 
ID0 = 'javascript.0.Robi.Reinigungsliste'
ID1 = 'mihome-vacuum.0.timer.135_10_00'
ID2 = 'mihome-vacuum.0.timer.246_10_00'
ID3 = 'mihome-vacuum.0.timer.246_10_20'
//Datenpunkt erzeugen einmalig zum Anlegen der JSON Table liste. "ID0" bitte bestimmen.
createState(ID0, name, {
  read: true, 
  write: true,
  name: 'Liste',
  type: "string",
});
// Auswerten des Datenpunkts
function Auswertung(x, ID) {
myjson = getObject(ID);
if (x == 'Termin'){
    return myjson.common.states["1"]
}
else if (x == 'Raum'){
    x = myjson.common.name;
    x = x.slice(((x.indexOf('>') + 2) - 1), x.length);
    return x
}
}
// Erstellen JSON für jeden Datenpunkt
function EJ(ID) {
return JSON.stringify({ Raum: ((Auswertung('Raum', ID))), Termin: ((Auswertung('Termin', ID)))})
}
// Erstelle Table-JSON
function TJSON() {
 return '['+(EJ(ID1))+','+(EJ(ID2))+','+(EJ(ID3))+']';
}
// ÜBerwachung des Objekts "clean_Home" als Trigger
on({id: 'mihome-vacuum.0.control.clean_home'/*Start/Home*/, change: "any"}, function (obj) {
  var value = obj.state.val;
  var oldValue = obj.oldState.val;
  setStateDelayed(ID0, (TJSON()), true, parseInt(0, 10), false);
    });
``

Der Wert im Datenpunkt schaut wie folgt aus:

[{"Raum":"Wohnzimmer","Termin":"Mittwoch 10:00"},{"Raum":"Küche","Termin":"Donnerstag 10:00"},{"Raum":"Couch","Termin":"Donnerstag 10:20"}]

Ergebnis im VIS
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants