NEWS
Raumzuordnung in Skript
-
@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.
-
@bahnuhr OK.
Danke!
-
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:
-
@bahnuhr Danke.
Du verwendest für dein VIS ein ähnliches Design wie ich, ob du mir einen Export vom View bereitstellen würdest?
-
@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.
Morgen was zu tun während der Saugsklave die Gegend erkundet.
-
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?
-
@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. -
@bahnuhr in deinem Script zum anlegen der DP‘s fehlt zum Beispiel genau dieser aber.
Deshalb die Frage
-
@wendy2702 sagte in Raumzuordnung in Skript:
@bahnuhr in deinem Script zum anlegen der DP‘s fehlt zum Beispiel genau dieser aber.
Deshalb die Frage
Ah, ok.
Musst die Punkte mal durchschauen.