NEWS
Raumzuordnung in Skript
-
Hallo zusammen,
ich arbeite daran die Steuerung meines Staubsauger Roboters in meine eigens kreirte VIS zu integrieren. Hierzu möchte ich gerne per Checkbox die zu sÀubernden RÀume auswÀhlen und den Roboter starten.
Soweit habe ich schon die ausgewÀhlten RÀume als Datenpunkte aus der VIS ausgelesen und in Datenpunkte (boolean) geschrieben (z.B. cb_wohnzimmer = true und cb_schlafzimmer = false; im Falle dass die Checkbox Wohnzimmer ausgewÀhlt ist).
Nun muss ich die Summe der ausgewĂ€hlten RĂ€ume in das folgende Objekt bekommen, wobei die Raumzuordnung fĂŒr den Roboter ĂŒber die Raumzuordnung (enum) im entsprechenden Datenpunkt gesteuert wird (siehe eingekreister Bereich).
Ich habe bereits etwas gegoogelt und wohl verstanden, dass es nur ĂŒber eine JS Funktion klappen wird (setObject ?!), aber so wirklich hat mir das nicht geholfen.

-
Hallo zusammen,
ich arbeite daran die Steuerung meines Staubsauger Roboters in meine eigens kreirte VIS zu integrieren. Hierzu möchte ich gerne per Checkbox die zu sÀubernden RÀume auswÀhlen und den Roboter starten.
Soweit habe ich schon die ausgewÀhlten RÀume als Datenpunkte aus der VIS ausgelesen und in Datenpunkte (boolean) geschrieben (z.B. cb_wohnzimmer = true und cb_schlafzimmer = false; im Falle dass die Checkbox Wohnzimmer ausgewÀhlt ist).
Nun muss ich die Summe der ausgewĂ€hlten RĂ€ume in das folgende Objekt bekommen, wobei die Raumzuordnung fĂŒr den Roboter ĂŒber die Raumzuordnung (enum) im entsprechenden Datenpunkt gesteuert wird (siehe eingekreister Bereich).
Ich habe bereits etwas gegoogelt und wohl verstanden, dass es nur ĂŒber eine JS Funktion klappen wird (setObject ?!), aber so wirklich hat mir das nicht geholfen.

-
@timo-2
Ich glaube du hast die falsche Vorgehensweise !Die RĂ€ume sind doch angelegt.

Und dort schreibt du in die RĂ€ume die du reinigen willst in den DP ".roomclean" ein true.
Der xiaomi fÀhrt dann die RÀume nacheinander an.
Fazit:
- RĂ€ume durch den Xiaomi anlegen lassen
- rausfinden welche Nr. welcher Raum ist.
- und dann ein true in die DP schreiben.
mfg
Dieter -
@timo-2
Ich glaube du hast die falsche Vorgehensweise !Die RĂ€ume sind doch angelegt.

Und dort schreibt du in die RĂ€ume die du reinigen willst in den DP ".roomclean" ein true.
Der xiaomi fÀhrt dann die RÀume nacheinander an.
Fazit:
- RĂ€ume durch den Xiaomi anlegen lassen
- rausfinden welche Nr. welcher Raum ist.
- und dann ein true in die DP schreiben.
mfg
DieterHallo Dieter,
danke fĂŒr Deine RĂŒckmeldung. Ich verstehe Deinen Ansatz, allerdings sind bei meinem Xiaomi Roborock S7 die Datenpunkte anders. Da gibt es fĂŒr roomClean nur einen Button und ich kann ĂŒber roomClean immer nur einen Raum triggern.
Daher der Ansatz ĂŒber multiRoomClean

-
Hallo Dieter,
danke fĂŒr Deine RĂŒckmeldung. Ich verstehe Deinen Ansatz, allerdings sind bei meinem Xiaomi Roborock S7 die Datenpunkte anders. Da gibt es fĂŒr roomClean nur einen Button und ich kann ĂŒber roomClean immer nur einen Raum triggern.
Daher der Ansatz ĂŒber multiRoomClean

@timo-2 sagte in Raumzuordnung in Skript:
Roborock S7 die Datenpunkte anders.
glaub ich nicht.
Ich habe auch den S7. Und meine Datenpunkte siehst du oben.hast du denn mittels der handy app schon einmal die rÀume erstellt ?
Glaube ich nicht, denn ansonsten wÀren sie da -
@timo-2 sagte in Raumzuordnung in Skript:
Roborock S7 die Datenpunkte anders.
glaub ich nicht.
Ich habe auch den S7. Und meine Datenpunkte siehst du oben.hast du denn mittels der handy app schon einmal die rÀume erstellt ?
Glaube ich nicht, denn ansonsten wÀren sie da@bahnuhr Die RÀume sind da. Du hast recht. Ich seh bei mir nur das "true" nicht direkt (s. Screenshot oben), sondern dieses Button Symbol. Ich habe jetzt aber testweise mal zwei RÀume getriggert. Mal schauen, was passiert, wenn er den ersten fertig hat. Wenn das dann funktioniert hast du Recht und das wÀre dann die Lösung.
Danke schonmal
-
@bahnuhr Die RÀume sind da. Du hast recht. Ich seh bei mir nur das "true" nicht direkt (s. Screenshot oben), sondern dieses Button Symbol. Ich habe jetzt aber testweise mal zwei RÀume getriggert. Mal schauen, was passiert, wenn er den ersten fertig hat. Wenn das dann funktioniert hast du Recht und das wÀre dann die Lösung.
Danke schonmal
@timo-2 sagte in Raumzuordnung in Skript:
Ich seh bei mir nur das "true" nicht direkt (s. Screenshot oben), sondern dieses Button Symbol.
Ich habe eigentlich deutlich geschrieben.
Du musst true in den DP ".roomclean" schreiben.In dienem Screenshot sieht man sowas nicht !!!

-
@timo-2 sagte in Raumzuordnung in Skript:
Ich seh bei mir nur das "true" nicht direkt (s. Screenshot oben), sondern dieses Button Symbol.
Ich habe eigentlich deutlich geschrieben.
Du musst true in den DP ".roomclean" schreiben.In dienem Screenshot sieht man sowas nicht !!!

-
@timo-2
Ich glaube du hast die falsche Vorgehensweise !Die RĂ€ume sind doch angelegt.

Und dort schreibt du in die RĂ€ume die du reinigen willst in den DP ".roomclean" ein true.
Der xiaomi fÀhrt dann die RÀume nacheinander an.
Fazit:
- RĂ€ume durch den Xiaomi anlegen lassen
- rausfinden welche Nr. welcher Raum ist.
- und dann ein true in die DP schreiben.
mfg
Dieter@bahnuhr sagte in Raumzuordnung in Skript:
Fazit:
RĂ€ume durch den Xiaomi anlegen lassen
Hi,
kannst du mir kurz sagen wie du das gemacht hast? Also auch Physikalisch mit dem Sauger das er z.B. nur das Wohnzimmer beackert, danach dann z.B. den Flur usw.
Danke
-
@bahnuhr sagte in Raumzuordnung in Skript:
Fazit:
RĂ€ume durch den Xiaomi anlegen lassen
Hi,
kannst du mir kurz sagen wie du das gemacht hast? Also auch Physikalisch mit dem Sauger das er z.B. nur das Wohnzimmer beackert, danach dann z.B. den Flur usw.
Danke
@wendy2702 sagte in Raumzuordnung in Skript:
@bahnuhr sagte in Raumzuordnung in Skript:
Fazit:
RĂ€ume durch den Xiaomi anlegen lassen
Hi,
kannst du mir kurz sagen wie du das gemacht hast? Also auch Physikalisch mit dem Sauger das er z.B. nur das Wohnzimmer beackert, danach dann z.B. den Flur usw.
Danke
Lass den robo die ganze RĂ€ume saugen.
Dann werden diese doch im Handy dargestellt.
Kannst du dann noch bearbeiten und sogar benennen.Und diese RĂ€ume werden dann in iob mit Nr. dargestellt. Dann musst du nur rausfinden welcher Raum welche Nr. hat.
-
@wendy2702 sagte in Raumzuordnung in Skript:
@bahnuhr sagte in Raumzuordnung in Skript:
Fazit:
RĂ€ume durch den Xiaomi anlegen lassen
Hi,
kannst du mir kurz sagen wie du das gemacht hast? Also auch Physikalisch mit dem Sauger das er z.B. nur das Wohnzimmer beackert, danach dann z.B. den Flur usw.
Danke
Lass den robo die ganze RĂ€ume saugen.
Dann werden diese doch im Handy dargestellt.
Kannst du dann noch bearbeiten und sogar benennen.Und diese RĂ€ume werden dann in iob mit Nr. dargestellt. Dann musst du nur rausfinden welcher Raum welche Nr. hat.
-
Anbei mein Staubsauger Script.
Bist doch auch js affin.
Vielleicht kannst du es ja gebrauchen.// Mihome - Staubsauger var request = require('request'), logging = true, Auto_Sprache = 'javascript.0.System.Automatik.Sprachausgabe'; var ID_Wz = "2803", ID_Kueche = "2831", ID_Buero = "2832", ID_Flur = "5081", ID_Sz = "2868", ID_Bad = "2870", ID_GaesteWC = "2902", ID_Arbeitsz = "3924" // RĂ€ume: Erdgeschoss Kellergeschoss // 451001032803 Wohnzimmer 451001035078 ??? // 451001032831 KĂŒche 451001035079 ??? // 451001032832 BĂŒro 451001035080 ??? // 451001035081 Flur // 451001032868 Schlafzimmer // 451001032870 Bad // 451001032902 GĂ€ste WC // 451001033924 Arbeitszimmer // Zonen - Reinigung ---------------------------------------------------------------------------------------------- on({id: "javascript.0.GerĂ€te.Staubsauger.Taster_Zone", change: "ne", val:true}, function() { // Taster wurde gedrĂŒckt var Zone = []; setState('mihome-vacuum.0.cleanmap.actualMap', 0); // 0 = Erdgeschoss, 1 = Kellergeschoss setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Arbeitszimmer").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Arbeitsz + '.roomClean', true); Zone.push("Arbeitszimmer"); }}, 500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Bad").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Bad + '.roomClean', true); Zone.push("Bad"); }}, 1000); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_BĂŒro").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Buero + '.roomClean', true); Zone.push("BĂŒro"); }}, 1500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Flur").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Flur + '.roomClean', true); Zone.push("Flur"); }}, 2000); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_GĂ€steWC").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_GaesteWC + '.roomClean', true); Zone.push("GĂ€ste WC"); }}, 2500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_KĂŒche").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Kueche + '.roomClean', true); Zone.push("KĂŒche"); }}, 3000); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Schlafzimmer").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Sz + '.roomClean', true); Zone.push("Schlafzimmer"); }}, 3500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Wohnzimmer").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Wz + '.roomClean', true); Zone.push("Wohnzimmer"); }}, 4000); setTimeout(function() { if (Zone.length == 0) { if (Sprache === true || Sprache === 1) { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Gong").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tos-computer-03.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Text").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "Achtung, zur Zonenreinigung muss mindestens 1 Raum angeklickt sein!")}, 3000); } log ("Zonenreinigung: Es wurde kein Raum angeklickt!"); } else { var Sprache = getState(Auto_Sprache).val; var Str_Zone = Zone.join(', '); if (Sprache === true || Sprache === 1) { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Gong").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tos-computer-03.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Text").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "ok, Die Zonenreinigung wird im " + Str_Zone + " ausgefĂŒhrt!")}, 2000); } log ("Zonenreinigung wird im " + Str_Zone + " durchgefĂŒhrt!"); } }, 5000); }); // Fahre zum MĂŒlleimer ---------------------------------------------------------------------------------------------- on({id: "javascript.0.GerĂ€te.Staubsauger.Taster_Muell", change: "ne", val:true}, function() { // Taster wurde gedrĂŒckt var Sprache = getState(Auto_Sprache).val; if (Sprache === true || Sprache === 1) { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Gong").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tos-computer-03.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Text").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "ok, Der Staubsauger fĂ€hrt zum MĂŒlleimer!")}, 2000); } //setState('mihome-vacuum.0.control.fan_power', 104); // Beschleunige die Fahrt auf 100% setStateDelayed('mihome-vacuum.0.control.goTo', "17500,29300", 3000); //setStateDelayed('mihome-vacuum.0.control.X_send_command','app_goto_target; [17350,22600]', 3000); //setStateDelayed('mihome-vacuum.0.control.fan_power', 102, 300000); // nach 5 Minuten die Power wieder auf 50% }); // Dialog Karte aufrufen on({id: "javascript.0.GerĂ€te.Staubsauger.Karte.Aufruf_Dialog", change: "ne", val: true}, function() { setState('vis.0.control.data', 'w02633'); // hier ist Widget-name setState('vis.0.control.instance', 'FFFFFFFF'); setState('vis.0.control.command', 'dialogOpen'); setStateDelayed("javascript.0.GerĂ€te.Staubsauger.Karte.Aufruf_Dialog",false,1000); }); // Error, Text in Variable schreiben ---------------------------------------------------------------------------------------------- on({id: "mihome-vacuum.0.info.error", change: "ne"}, function(obj){ var v_Error = getState('mihome-vacuum.0.info.error').val; var v_Text = ""; if (v_Error === 0) v_Text = "no Error"; if (v_Error === 1) v_Text = "Laser distance sensor error"; if (v_Error === 2) v_Text = "Collision sensor error"; if (v_Error === 3) v_Text = "Wheels on top of void, move robot"; if (v_Error === 4) v_Text = "Clean hovering sensors, move robot"; if (v_Error === 5) v_Text = "Clean main brush"; if (v_Error === 6) v_Text = "Clean side brush"; if (v_Error === 7) v_Text = "Main wheel stuck?"; if (v_Error === 8) v_Text = "Device stuck, clean area"; if (v_Error === 9) v_Text = "Dust collector missing"; if (v_Error === 10) v_Text = "Clean filter"; if (v_Error === 11) v_Text = "Stuck in magnetic barrier"; if (v_Error === 12) v_Text = "Low battery"; if (v_Error === 13) v_Text = "Charging fault"; if (v_Error === 14) v_Text = "Battery fault"; if (v_Error === 15) v_Text = "Wall sensors dirty, wipe them"; if (v_Error === 16) v_Text = "Place me on flat surface"; if (v_Error === 17) v_Text = "Side brushes problem, reboot me"; if (v_Error === 18) v_Text = "Suction fan problem"; if (v_Error === 19) v_Text = "Unpowered charging station"; setState("javascript.0.GerĂ€te.Staubsauger.Mihome_Text_Error", v_Text); if (v_Error > 0) { log("Auslöser: Mihome Staubsauger hat Error !"); sendTo('telegram', "Achtung, Achtung! \nDer Mihome Staubsauger hat folgenden Error:\n" + v_Text); View_change ('Geraete', 0); //Sound var request = require ('request'); Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_laut").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tng_red_alert2.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_laut").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "Achtung, Achtung! Der Robo Staubsauger hat Error"); }, 6000); View_change ('Titel', 30000); } }); // Taster gedrĂŒckt ---------------------------------------------------------------------------------------------- on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Start", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.start', true); setTimeout(function(){ setState('mihome-vacuum.0.control.start', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Start', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Pause", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.pause', true); setTimeout(function(){ setState('mihome-vacuum.0.control.pause', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Pause', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Home", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.home', true); setTimeout(function(){ setState('mihome-vacuum.0.control.home', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Home', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Find", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.find', true); setTimeout(function(){ setState('mihome-vacuum.0.control.find', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Find', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.filter", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.filter_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.filter_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.filter', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.main_brush", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.main_brush_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.main_brush_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.main_brush', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.side_brush", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.side_brush_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.side_brush_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.side_brush', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.sensors", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.sensors_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.sensors_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.sensors', false);; }, 2000); });In vis sieht es dann bei mir so aus:

-
Anbei mein Staubsauger Script.
Bist doch auch js affin.
Vielleicht kannst du es ja gebrauchen.// Mihome - Staubsauger var request = require('request'), logging = true, Auto_Sprache = 'javascript.0.System.Automatik.Sprachausgabe'; var ID_Wz = "2803", ID_Kueche = "2831", ID_Buero = "2832", ID_Flur = "5081", ID_Sz = "2868", ID_Bad = "2870", ID_GaesteWC = "2902", ID_Arbeitsz = "3924" // RĂ€ume: Erdgeschoss Kellergeschoss // 451001032803 Wohnzimmer 451001035078 ??? // 451001032831 KĂŒche 451001035079 ??? // 451001032832 BĂŒro 451001035080 ??? // 451001035081 Flur // 451001032868 Schlafzimmer // 451001032870 Bad // 451001032902 GĂ€ste WC // 451001033924 Arbeitszimmer // Zonen - Reinigung ---------------------------------------------------------------------------------------------- on({id: "javascript.0.GerĂ€te.Staubsauger.Taster_Zone", change: "ne", val:true}, function() { // Taster wurde gedrĂŒckt var Zone = []; setState('mihome-vacuum.0.cleanmap.actualMap', 0); // 0 = Erdgeschoss, 1 = Kellergeschoss setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Arbeitszimmer").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Arbeitsz + '.roomClean', true); Zone.push("Arbeitszimmer"); }}, 500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Bad").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Bad + '.roomClean', true); Zone.push("Bad"); }}, 1000); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_BĂŒro").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Buero + '.roomClean', true); Zone.push("BĂŒro"); }}, 1500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Flur").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Flur + '.roomClean', true); Zone.push("Flur"); }}, 2000); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_GĂ€steWC").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_GaesteWC + '.roomClean', true); Zone.push("GĂ€ste WC"); }}, 2500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_KĂŒche").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Kueche + '.roomClean', true); Zone.push("KĂŒche"); }}, 3000); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Schlafzimmer").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Sz + '.roomClean', true); Zone.push("Schlafzimmer"); }}, 3500); setTimeout(function() { if (getState("javascript.0.GerĂ€te.Staubsauger.Zone_Wohnzimmer").val) { setState('mihome-vacuum.0.rooms.45100103' + ID_Wz + '.roomClean', true); Zone.push("Wohnzimmer"); }}, 4000); setTimeout(function() { if (Zone.length == 0) { if (Sprache === true || Sprache === 1) { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Gong").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tos-computer-03.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Text").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "Achtung, zur Zonenreinigung muss mindestens 1 Raum angeklickt sein!")}, 3000); } log ("Zonenreinigung: Es wurde kein Raum angeklickt!"); } else { var Sprache = getState(Auto_Sprache).val; var Str_Zone = Zone.join(', '); if (Sprache === true || Sprache === 1) { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Gong").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tos-computer-03.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Text").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "ok, Die Zonenreinigung wird im " + Str_Zone + " ausgefĂŒhrt!")}, 2000); } log ("Zonenreinigung wird im " + Str_Zone + " durchgefĂŒhrt!"); } }, 5000); }); // Fahre zum MĂŒlleimer ---------------------------------------------------------------------------------------------- on({id: "javascript.0.GerĂ€te.Staubsauger.Taster_Muell", change: "ne", val:true}, function() { // Taster wurde gedrĂŒckt var Sprache = getState(Auto_Sprache).val; if (Sprache === true || Sprache === 1) { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Gong").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tos-computer-03.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_Text").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "ok, Der Staubsauger fĂ€hrt zum MĂŒlleimer!")}, 2000); } //setState('mihome-vacuum.0.control.fan_power', 104); // Beschleunige die Fahrt auf 100% setStateDelayed('mihome-vacuum.0.control.goTo', "17500,29300", 3000); //setStateDelayed('mihome-vacuum.0.control.X_send_command','app_goto_target; [17350,22600]', 3000); //setStateDelayed('mihome-vacuum.0.control.fan_power', 102, 300000); // nach 5 Minuten die Power wieder auf 50% }); // Dialog Karte aufrufen on({id: "javascript.0.GerĂ€te.Staubsauger.Karte.Aufruf_Dialog", change: "ne", val: true}, function() { setState('vis.0.control.data', 'w02633'); // hier ist Widget-name setState('vis.0.control.instance', 'FFFFFFFF'); setState('vis.0.control.command', 'dialogOpen'); setStateDelayed("javascript.0.GerĂ€te.Staubsauger.Karte.Aufruf_Dialog",false,1000); }); // Error, Text in Variable schreiben ---------------------------------------------------------------------------------------------- on({id: "mihome-vacuum.0.info.error", change: "ne"}, function(obj){ var v_Error = getState('mihome-vacuum.0.info.error').val; var v_Text = ""; if (v_Error === 0) v_Text = "no Error"; if (v_Error === 1) v_Text = "Laser distance sensor error"; if (v_Error === 2) v_Text = "Collision sensor error"; if (v_Error === 3) v_Text = "Wheels on top of void, move robot"; if (v_Error === 4) v_Text = "Clean hovering sensors, move robot"; if (v_Error === 5) v_Text = "Clean main brush"; if (v_Error === 6) v_Text = "Clean side brush"; if (v_Error === 7) v_Text = "Main wheel stuck?"; if (v_Error === 8) v_Text = "Device stuck, clean area"; if (v_Error === 9) v_Text = "Dust collector missing"; if (v_Error === 10) v_Text = "Clean filter"; if (v_Error === 11) v_Text = "Stuck in magnetic barrier"; if (v_Error === 12) v_Text = "Low battery"; if (v_Error === 13) v_Text = "Charging fault"; if (v_Error === 14) v_Text = "Battery fault"; if (v_Error === 15) v_Text = "Wall sensors dirty, wipe them"; if (v_Error === 16) v_Text = "Place me on flat surface"; if (v_Error === 17) v_Text = "Side brushes problem, reboot me"; if (v_Error === 18) v_Text = "Suction fan problem"; if (v_Error === 19) v_Text = "Unpowered charging station"; setState("javascript.0.GerĂ€te.Staubsauger.Mihome_Text_Error", v_Text); if (v_Error > 0) { log("Auslöser: Mihome Staubsauger hat Error !"); sendTo('telegram', "Achtung, Achtung! \nDer Mihome Staubsauger hat folgenden Error:\n" + v_Text); View_change ('Geraete', 0); //Sound var request = require ('request'); Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_laut").val); setState('sayit.3.tts.text', '/opt/iobroker/iobroker-data/files/vis.0/mp3/tng_red_alert2.mp3'); setTimeout(function() { Tablet_Lautstaerke(getState("javascript.0.System.Sonstige.Laut_laut").val); }, 2800); setTimeout(function() { setState('sayit.4.tts.text', "Achtung, Achtung! Der Robo Staubsauger hat Error"); }, 6000); View_change ('Titel', 30000); } }); // Taster gedrĂŒckt ---------------------------------------------------------------------------------------------- on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Start", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.start', true); setTimeout(function(){ setState('mihome-vacuum.0.control.start', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Start', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Pause", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.pause', true); setTimeout(function(){ setState('mihome-vacuum.0.control.pause', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Pause', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Home", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.home', true); setTimeout(function(){ setState('mihome-vacuum.0.control.home', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Home', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.Find", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.control.find', true); setTimeout(function(){ setState('mihome-vacuum.0.control.find', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.Find', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.filter", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.filter_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.filter_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.filter', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.main_brush", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.main_brush_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.main_brush_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.main_brush', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.side_brush", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.side_brush_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.side_brush_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.side_brush', false);; }, 2000); }); on({id: "javascript.0.GerĂ€te.Staubsauger.Taster.sensors", change: "ne", val: true}, function(obj){ setState('mihome-vacuum.0.consumable.sensors_reset', true); setTimeout(function(){ setState('mihome-vacuum.0.consumable.sensors_reset', false); }, 2000); setTimeout(function(){ setState('javascript.0.GerĂ€te.Staubsauger.Taster.sensors', false);; }, 2000); });In vis sieht es dann bei mir so aus:

-
@wendy2702 sagte in Raumzuordnung in Skript:
@bahnuhr Danke.
Du verwendest fĂŒr dein VIS ein Ă€hnliches Design wie ich, ob du mir einen Export vom View bereitstellen wĂŒrdest?
Na klar.
Anbei die o.g. widgets (keine view) -
@wendy2702 sagte in Raumzuordnung in Skript:
@bahnuhr Danke.
Du verwendest fĂŒr dein VIS ein Ă€hnliches Design wie ich, ob du mir einen Export vom View bereitstellen wĂŒrdest?
Na klar.
Anbei die o.g. widgets (keine view) -
@bahnuhr Danke.
Du verwendest fĂŒr dein VIS ein Ă€hnliches Design wie ich, ob du mir einen Export vom View bereitstellen wĂŒrdest?
Und hier noch ein kleines Script um die DP anzulegen.
// Staubsauger ------------------------------------------------------------------------------------------------------------- createState('javascript.0.GerĂ€te.Staubsauger.Zone_Arbeitszimmer', true, {type: 'boolean',name: 'Zone_Arbeitszimmer',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Bad', true, {type: 'boolean',name: 'Zone_Bad',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_BĂŒro', true, {type: 'boolean',name: 'Zone_BĂŒro',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Flur', true, {type: 'boolean',name: 'Zone_Flur',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_GĂ€steWC', true, {type: 'boolean',name: 'Zone_GĂ€aste WC',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_KĂŒche', true, {type: 'boolean',name: 'Zone_KĂŒche',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Schlafzimmer', true, {type: 'boolean',name: 'Zone_Schlafzimmer',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Wohnzimmer', true, {type: 'boolean',name: 'Zone_Wohnzimmer',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Taster_Zone',false, {type: 'boolean',name: 'Taster _ Zone _ ausfĂŒhren',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Taster_Muell',false, {type: 'boolean',name: 'Taster _ Muell',read: true,write: true,role: 'per Script'}); -
Und hier noch ein kleines Script um die DP anzulegen.
// Staubsauger ------------------------------------------------------------------------------------------------------------- createState('javascript.0.GerĂ€te.Staubsauger.Zone_Arbeitszimmer', true, {type: 'boolean',name: 'Zone_Arbeitszimmer',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Bad', true, {type: 'boolean',name: 'Zone_Bad',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_BĂŒro', true, {type: 'boolean',name: 'Zone_BĂŒro',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Flur', true, {type: 'boolean',name: 'Zone_Flur',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_GĂ€steWC', true, {type: 'boolean',name: 'Zone_GĂ€aste WC',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_KĂŒche', true, {type: 'boolean',name: 'Zone_KĂŒche',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Schlafzimmer', true, {type: 'boolean',name: 'Zone_Schlafzimmer',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Zone_Wohnzimmer', true, {type: 'boolean',name: 'Zone_Wohnzimmer',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Taster_Zone',false, {type: 'boolean',name: 'Taster _ Zone _ ausfĂŒhren',read: true,write: true,role: 'per Script'}); createState('javascript.0.GerĂ€te.Staubsauger.Taster_Muell',false, {type: 'boolean',name: 'Taster _ Muell',read: true,write: true,role: 'per Script'});@bahnuhr Hi,
in dem groĂen Script gibt und auch in den Wisgest es ja noch ein paar mehr DP's als in dem um die DP's anzulegen.
Hast du die auch manuel angelegt oder woher sind die?
Z.B. GerÀte.Staubsauger.Taster.Home
Hast du bestimmtest CSS oder was anderes hinterlegt? Wenn ich die Widgets importiere sieht das so verschoben aus?

-
@bahnuhr Hi,
in dem groĂen Script gibt und auch in den Wisgest es ja noch ein paar mehr DP's als in dem um die DP's anzulegen.
Hast du die auch manuel angelegt oder woher sind die?
Z.B. GerÀte.Staubsauger.Taster.Home
Hast du bestimmtest CSS oder was anderes hinterlegt? Wenn ich die Widgets importiere sieht das so verschoben aus?

@wendy2702 sagte in Raumzuordnung in Skript:
Z.B. GerÀte.Staubsauger.Taster.Home
genau 1 thread vorher steht doch, dass du diese manuell anlegen musst.
Und sogar die Scripte schon dabei. -
@wendy2702 sagte in Raumzuordnung in Skript:
Z.B. GerÀte.Staubsauger.Taster.Home
genau 1 thread vorher steht doch, dass du diese manuell anlegen musst.
Und sogar die Scripte schon dabei.
