Gruß, Johny
HowTo: Gardena Smart System
Einklappen
X
-
Hallo,
einer der Befehle funktioniert bei mir nicht: "Plan fortsetzen". Es gibt keine Reaktion. Zur Automatisierung wäre dieser Befehl sehr wichtig. Alle anderen funktionieren sehr gut.
Muss ich in der Vorlage etwas verändern?
<VirtualOutCmd Title="Plan fortsetzen" Comment="" CmdOnMethod="GET" CmdOffMethod="GET" CmdOn="/index.php?action=RESUME_SCHEDUL" CmdOnHTTP="" CmdOnPost="" CmdOff="" CmdOffHTTP="" CmdOffPost="" Analog="true" Repeat="0" RepeatRate="0"/>
Gruß, JohnyKommentar
-
Hallo,
ich möchte nochmal nachfragen. Bei mir funktioniert der Befehl: START_RESUME_SCHEDULE nicht. Geht dieser Befehl bei irgend jemanden? Hat sich am Syntax etwas geändert? Die Start-Befehle gehen sonst. Nur eben die Aktivierung des Zeitprogrammes nicht.
Gruß, Johny
Kommentar
-
Zuerst möchte ich mich bei Michael für das tolle Skript bedanken. Ich habe es auf dem Synology installiert und fast alle Befehle funktionieren vom Internet Browser. Der einzige Befehl welcher bei mir auch nicht funktioniert ist der SCHEDULE. Ich habe aber noch ein anderes Problem, die Befehle funktionieren nicht vom Loxone (ich habe Beta V9). Die Meldungen funktionieren einwandfrei auf dem Loxone. Aber ich kann den Mäher nicht vom Loxone Starten und Stoppen. Wo könnte der Fehler liegen?2 BilderKommentar
-
Hallo zusammen,
seit gestern bin ich auh stolzer Besitzer eines Gardena Samrt Sileno. Soweit läuft "Horst-Kevin" und zieht auf unserem Rasen seine Kreise :-)
Als nächstes möchte ich den Sileno in Loxone einbinden. Da ich mich aber mit PHP-Server usw. kaum bis gar nicht auskenne benätige ich von euch weitere Unterstützung. Die virtuellen I/Os habe ich bereits in Loxone Config eingebunden.
Hier meine Fragen:
- In welches Verzeichnis meine Synology lege ich die Dateien? Muss ich hier zusätzlich noch etwas einstellen?
Vielen Dank für eure Hilfe :-)
Gruß MarcusKommentar
-
Unterdessen habe ich es geschafft den Mäher von Loxone zu steuern.
Der einzige Befehl welcher nicht funktioniert ist wie bei Johny"Plan fortsetzen". Die Schreibweise von SCHEDUL/SCHEDULE ist bei den Dateien Gardena.class.inc.php und index.php nicht gleich. Ich habe aber beides versucht in beiden Dateien zu korrigieren, aber es funktioniert nicht.
Wenn ich den Befehl (http://192.168.xx.xx/Loxone/Gardena/index.php?action=RESUME_SCHEDULE)im Internet Browser eingebe kommt folgende Fehlermeldung:
Notice: Undefined property: gardena::$CMD_MOWER_RESUME_SCHEDULE in /volume1/web/Loxone/Gardena/index.php on line 131
index.php:
else if ($_GET["action"] === "PARK_UNTIL_FURTHER_NOTICE")
{
$gardena -> sendCommand($mower, $gardena -> CMD_MOWER_PARK_UNTIL_FURTHER_NOTICE);
}
else if ($_GET["action"] === "PARK_UNTIL_NEXT_TIMER")
{
$gardena -> sendCommand($mower, $gardena -> CMD_MOWER_PARK_UNTIL_NEXT_TIMER);
}
else if ($_GET["action"] === "RESUME_SCHEDULE")
{
$gardena -> sendCommand($mower, $gardena -> CMD_MOWER_RESUME_SCHEDULE);
Gardena.class.inc
var $CMD_MOWER_PARK_UNTIL_NEXT_TIMER = array("name" => "park_until_next_timer");
var $CMD_MOWER_PARK_UNTIL_FURTHER_NOTICE = array("name" => "park_until_further_notice");
var $CMD_MOWER_START_RESUME_SCHEDULE = array("name" => "start_resume_schedule");
Funktioniert bei jemanden "Plan fortsetzen"? Oder hat jemand eine Idee was ich in den Dateien noch anpassen könnte?Kommentar
-
Hallo,
ich habe jetzt folgende Lösung gefunden. Bei Start mit einer festgelegten Zeit geht der Mäher nach Ablauf dieser Zeit in den Zeitplan über. Ich habe einen Ausgang mit Befehl Start Mähen mit 1 Minute angelegt. Damit wird nach einer Minute der Zeitplan aktiviert. Insgesamt funktioniert bei mir alles tadellos.
Gruß, JohnyKommentar
-
erst einmal auch eingroßen Dankeschön von mir für das Erstellen und Erweitern dieses Skripts. Es funktioniert bei mir soweit hervorragend.
Da ich jetzt 3 Sensoren im Einsatz habe, suche ich nach einer Möglichkeit die Werte mehrerer Sensoren abzufragen. Leider ist PHP nicht meine Stärke und ich bekomme die Erweiterung nicht hin. Gibt es vielleicht jemanden der das Skript schon erweitert hat, oder kann mir ein Tipp geben wo ich vielleicht noch schauen kann?
Viele Grüße,
Kommentar
-
Hallo zusammen,
da ich mir gerade die neue Loxberry Version installiert habe, bin ich dran das Skript als Plugin für den Loxberry zu erstellen. Plan ist es die Werte vom Gardena Smart System im Stil des Netatmo Plugins per UDP zum Mini Server zu schicken.
Wenn ich soweit bin und eine erste Version läuft wäre Feedback interessant ob alles funktioniert. Gerade den Teil mit den Smart Sensoren und der Bewässerung kann ich leider nicht testen.
In einer zweiten Version hätte ich dann noch die Kommandos mit eingebaut. Ist nur die Frage ob die aktuell vorhandenen ausreichen oder ob weiteres benötigt wird. Auch habe ich noch die Frage ob es eine geschicktere Lösung gibt. Dann könnte ich versuchen diese zu realisieren.
Ich werde das Plugin dann auch irgendwo z.B. Github ablegen so dass Verbesserungen von allen Nutzern eingebaut werden können.
Anbei ein Auszug von der aktuellen Ausgabe die ich beim Erstellen zum Debuggen nutze. Hier sieht man aber schon gut welche Werte gelesen werden können.
Ich werde aber nur die Daten hinter "Data to send:" per UDP in diesem Format an den Miniserver senden. Bei allen anderen Daten sehe ich eigentlich keinen Bedarf.
Sollte doch jemand Bedarf haben, bitte bescheid geben. Ich versuche es dann zu berücksichtigen.
Es werden natürlich so auch einige unnütze Daten übertragen, ich hoffe aber durch das stupide versenden auch heute noch (mir) unbekannte Geräte Typen und Parameter übertragen zu können. Dann muss nur die Konfig im Miniserver erweitert werden.
Bei Strings mit mehren möglichen Werten übertrage ich einen Zahlen Wert + den String. Grundsätzlich reicht aber der Zahlenwert dieser kann dann konvertiert werden. Ich hoffe dass Gardena die Arrays nicht zu häufig ändert...
Ach ja und nicht wundern unser Mäher hat den schönen Namen "Mööh", daher steht das unten auch so in der Ausgabe.
Feedback wird ausdrücklich gewünscht!
Code:Location:My Garden authorized_at:2016-10-01T15:31:15.809Z address:irgendwo in Deutschland latitude:xxxxxx longitude:xxxxx [B]Device Category:gateway[/B] Device Name:Gateway configuration_synchronized:1 [B]Categorie: [/B]device_info manufacturer: Datatyp String - Value: Seluxit Data to send: gateway.Gateway.device_info.manufacturer:[Seluxit] product: Datatyp String - Value: 1-GATEWAY Data to send: gateway.Gateway.device_info.product:[1-GATEWAY] serial_number: Datatyp String - Value: N/A Data to send: gateway.Gateway.device_info.serial_number:[N/A] sgtin: Datatyp String - Value: N/A Data to send: gateway.Gateway.device_info.sgtin:[N/A] version: Datatyp String - Value: 1.9.5 Data to send: gateway.Gateway.device_info.version:[1.9.5] category: Datatyp String - Value: gateway Data to send: gateway.Gateway.device_info.category:[gateway] last_time_online: Datatyp String - Value: N/A Data to send: gateway.Gateway.device_info.last_time_online:[N/A] [B]Categorie: [/B]gateway ip_address: Datatyp String - Value: 192.168.1.107 Data to send: gateway.Gateway.gateway.ip_address:[192.168.1.107] time_zone: Datatyp String - Value: Europe/Berlin (CEST, +0200) Data to send: gateway.Gateway.gateway.time_zone:[ Europe/Berlin (CEST, +0200)] homekit_setup_payload: Datatyp String - Value: Data to send: gateway.Gateway.gateway.homekit_setup_payload: [B]Device Category:mower[/B] Device Name:Mööh configuration_synchronized:1 [B]Categorie: [/B]device_info manufacturer: Datatyp String - Value: Gardena Data to send: mower.Mööh.device_info.manufacturer:[Gardena] product: Datatyp String - Value: 3-DEVICE Data to send: mower.Mööh.device_info.product:[3-DEVICE] serial_number: Datatyp String - Value: 0000815 Data to send: mower.Mööh.device_info.serial_number:[0000815] version: Datatyp String - Value: 3.0.0-2.5.2-1.2.6-rc2-ICD1.17_1.4.8 Data to send: mower.Mööh.device_info.version:[3.0.0-2.5.2-1.2.6-rc2-ICD1.17_1.4.8] category: Datatyp String - Value: mower Data to send: mower.Mööh.device_info.category:[mower] last_time_online: Datatyp String - Value: 2018-07-06T23:02:36.056Z Data to send: mower.Mööh.device_info.last_time_online:[2018-07-06T23:02:36.056Z] sgtin: Datatyp String - Value: 3034F8EE90060080000013E1 Data to send: mower.Mööh.device_info.sgtin:[3034F8EE90060080000013E1] [B]Categorie: [/B]battery level: Datatyp Int - Value: 100% timestamp:2018-07-06T23:02:35.894Z Data to send: mower.Mööh.battery.level:100 charging: Datatyp Bool - Value: 0 timestamp:2018-07-06T23:02:35.894Z --->Possible Values: array ( 0 => 'true', 1 => 'false', ) Data Value at Position: 1 Data to send: mower.Mööh.battery.charging:1 [B]Categorie: [/B]radio quality: Datatyp Int - Value: 60% timestamp:2018-07-06T23:02:35.979Z Data to send: mower.Mööh.radio.quality:60 connection_status: Datatyp String - Value: status_device_alive timestamp:2018-06-19T17:59:03.373Z --->Possible Values: array ( 0 => 'unknown', 1 => 'status_device_unreachable', 2 => 'status_device_alive', ) Data Value at Position: 2 Data to send: mower.Mööh.radio.connection_status:2[status_device_alive] state: Datatyp String - Value: good timestamp:2018-07-06T23:02:36.056Z --->Possible Values: array ( 0 => 'bad', 1 => 'poor', 2 => 'good', 3 => 'undefined', ) Data Value at Position: 2 Data to send: mower.Mööh.radio.state:2[good] [B]Categorie: [/B]firmware firmware_status: Datatyp String - Value: up_to_date Data to send: mower.Mööh.firmware.firmware_status:2[up_to_date] firmware_upload_progress: Datatyp Int - Value: 0 Data to send: mower.Mööh.firmware.firmware_upload_progress:0 firmware_available_version: Datatyp String - Value: Data to send: mower.Mööh.firmware.firmware_available_version:0 inclusion_status: Datatyp String - Value: included Data to send: mower.Mööh.firmware.inclusion_status:0[included] firmware_update_start: Datatyp Bool - Value: 1 Data to send: mower.Mööh.firmware.firmware_update_start:1 firmware_command: Datatyp String - Value: idle --->Possible Values: array ( 0 => 'idle', 1 => 'firmware_cancel', 2 => 'firmware_flash', 3 => 'firmware_upload', 4 => 'unsupported', ) Data Value at Position: 0 Data to send: mower.Mööh.firmware.firmware_command:0[idle] [B]Categorie: [/B]mower manual_operation: Datatyp Bool - Value: 0 timestamp:2018-07-06T23:02:36.141Z Data to send: mower.Mööh.mower.manual_operation:0 status: Datatyp String - Value: parked_timer timestamp:2018-07-06T23:02:36.220Z --->Possible Values: array ( 0 => 'paused', 1 => 'ok_cutting', 2 => 'ok_searching', 3 => 'ok_charging', 4 => 'ok_leaving', 5 => 'wait_updating', 6 => 'wait_power_up', 7 => 'parked_timer', 8 => 'parked_park_selected', 9 => 'off_disabled', 10 => 'off_hatch_open', 11 => 'unknown', 12 => 'error', 13 => 'error_at_power_up', 14 => 'off_hatch_closed', 15 => 'ok_cutting_timer_overridden', 16 => 'parked_autotimer', 17 => 'parked_daily_limit_reached', 18 => 'undefined', ) Data Value at Position: 7 Data to send: mower.Mööh.mower.status:7[parked_timer] error: Datatyp String - Value: no_message timestamp:2018-07-06T23:02:36.220Z --->Possible Values: array ( 0 => 'no_message', 1 => 'outside_working_area', 2 => 'no_loop_signal', 3 => 'wrong_loop_signal', 4 => 'loop_sensor_problem_front', 5 => 'loop_sensor_problem_rear', 6 => 'loop_sensor_problem_left', 7 => 'loop_sensor_problem_right', 8 => 'wrong_pin_code', 9 => 'trapped', 10 => 'upside_down', 11 => 'low_battery', 12 => 'empty_battery', 13 => 'no_drive', 14 => 'temporarily_lifted', 15 => 'lifted', 16 => 'stuck_in_charging_station', 17 => 'charging_station_blocked', 18 => 'collision_sensor_problem_rear', 19 => 'collision_sensor_problem_front', 20 => 'wheel_motor_blocked_right', 21 => 'wheel_motor_blocked_left', 22 => 'wheel_drive_problem_right', 23 => 'wheel_drive_problem_left', 24 => 'cutting_motor_drive_defect', 25 => 'cutting_system_blocked', 26 => 'invalid_sub_device_combination', 27 => 'settings_restored', 28 => 'memory_circuit_problem', 29 => 'slope_too_steep', 30 => 'charging_system_problem', 31 => 'stop_button_problem', 32 => 'tilt_sensor_problem', 33 => 'mower_tilted', 34 => 'wheel_motor_overloaded_right', 35 => 'wheel_motor_overloaded_left', 36 => 'charging_current_too_high', 37 => 'electronic_problem', 38 => 'cutting_motor_problem', 39 => 'limited_cutting_height_range', 40 => 'unexpected_cutting_height_adj', 41 => 'cutting_height_problem_drive', 42 => 'cutting_height_problem_curr', 43 => 'cutting_height_problem_dir', 44 => 'cutting_height_blocked', 45 => 'cutting_height_problem', 46 => 'no_response_from_charger', 47 => 'ultrasonic_problem', 48 => 'temporary_problem', 49 => 'guide_1_not_found', 50 => 'guide_2_not_found', 51 => 'guide_3_not_found', 52 => 'gps_tracker_module_error', 53 => 'weak_gps_signal', 54 => 'difficult_finding_home', 55 => 'guide_calibration_accomplished', 56 => 'guide_calibration_failed', 57 => 'temporary_battery_problem', 58 => 'battery_problem', 59 => 'too_many_batteries', 60 => 'alarm_mower_switched_off', 61 => 'alarm_mower_stopped', 62 => 'alarm_mower_lifted', 63 => 'alarm_mower_tilted', 64 => 'alarm_mower_in_motion', 65 => 'alarm_outside_geofence', 66 => 'connection_changed', 67 => 'connection_not_changed', 68 => 'com_board_not_available', 69 => 'slipped', 70 => 'invalid_battery_combination', 71 => 'imbalanced_cutting_disc', 72 => 'safety_function_faulty', ) Data Value at Position: 0 Data to send: mower.Mööh.mower.error:0[no_message] last_error_code: Datatyp String - Value: no_message timestamp:2018-07-06T23:02:36.422Z Data to send: mower.Mööh.mower.last_error_code:0[no_message] source_for_next_start: Datatyp String - Value: week_timer timestamp:2018-07-06T23:02:36.314Z --->Possible Values: array ( 0 => 'no_source', 1 => 'completed_cutting_daily_limit', 2 => 'week_timer', 3 => 'countdown_timer', 4 => 'mower_charging', 5 => 'completed_cutting_autotimer', 6 => 'undefined', ) Data Value at Position: 2 Data to send: mower.Mööh.mower.source_for_next_start:2[week_timer] timestamp_next_start: Datatyp String - Value: 2018-07-07T04:00Z timestamp:2018-07-06T23:02:36.341Z Data to send: mower.Mööh.mower.timestamp_next_start:2[2018-07-07T04:00Z] override_end_time: Datatyp String - Value: 2018-03-28T15:18:47Z timestamp:2018-07-06T23:02:36.366Z Data to send: mower.Mööh.mower.override_end_time:2[2018-03-28T15:18:47Z] timestamp_last_error_code: Datatyp String - Value: 1970-01-01T00:00Z timestamp:2018-07-06T23:02:36.450Z Data to send: mower.Mööh.mower.timestamp_last_error_code:2[1970-01-01T00:00Z] [B]Categorie: [/B]mower_stats cutting_time: Datatyp Int - Value: 876h timestamp:2018-07-06T10:02:24.903Z Data to send: mower.Mööh.mower_stats.cutting_time:876 charging_cycles: Datatyp Int - Value: 760 timestamp:2018-07-06T09:02:25.656Z Data to send: mower.Mööh.mower_stats.charging_cycles:760 collisions: Datatyp Int - Value: 15042 timestamp:2018-07-06T10:02:25.039Z Data to send: mower.Mööh.mower_stats.collisions:15042 running_time: Datatyp Int - Value: 927h timestamp:2018-07-06T10:02:24.866Z Data to send: mower.Mööh.mower_stats.running_time:927 [B]Categorie: [/B]mower_type base_software_up_to_date: Datatyp Bool - Value: 1 timestamp:2018-03-11T19:55:58.695Z Data to send: mower.Mööh.mower_type.base_software_up_to_date:1 mmi_version: Datatyp String - Value: 7.6 timestamp:2018-03-11T19:56:01.540Z Data to send: mower.Mööh.mower_type.mmi_version:1[7.6] mainboard_version: Datatyp String - Value: 7.13 timestamp:2018-03-11T19:55:58.695Z Data to send: mower.Mööh.mower_type.mainboard_version:1[7.13] comboard_version: Datatyp String - Value: 7.10 timestamp:2018-03-11T19:56:01.585Z Data to send: mower.Mööh.mower_type.comboard_version:1[7.10] device_type: Datatyp String - Value: 13 timestamp:2018-03-11T19:55:58.767Z Data to send: mower.Mööh.mower_type.device_type:1[13] device_variant: Datatyp String - Value: 1 timestamp:2018-03-11T19:55:58.855Z Data to send: mower.Mööh.mower_type.device_variant:1[1]
MichaelKommentar
-
Hi Michael,
super Idee und ich freue mich auf eine erste Version des Plugins. bzgl. der Sensoren kann ich gerne beim Testen unterstützen. Ich habe mittlerweile auch mehrere Sensoren eingebunden, dies wäre mir bei einem Plugin wichtig.
Da ich fast keine Ahnung von php habe und mir Teile aus dem Netz zusammen kopiert habe, ist meine Lösung sicher nicht die beste, aber sie kann von jemanden mit etwas mehr Ahnung sicher überarbeitet werden.
Folgende Ergänzung habe ich zu deinem Skript gemacht:
In der gardena.class.inc.php:
3 Konstanten eingefügt mit dem Namen der Sensoren.
Code:const NAME_SENSOR_01 = "Sensor-Beet"; const NAME_SENSOR_02 = "Sensor-Hecke"; const NAME_SENSOR_03 = "Sensor-Rasen";
Code:function getFirstDeviceOfCategory2($category) { foreach($this -> devices as $locationId => $devices) { foreach($devices as $device) if ($device -> name == $category) return $device; } }
Code:$sensor1 = $gardena -> getFirstDeviceOfCategory2($gardena::NAME_SENSOR_01 ); $sensor2 = $gardena -> getFirstDeviceOfCategory2($gardena::NAME_SENSOR_02 ); $sensor3 = $gardena -> getFirstDeviceOfCategory2($gardena::NAME_SENSOR_03 );
Kommentar
-
Hi Andreas,
wirklich Ahnung würde ich bei mir auch nicht sagen. Mit den Vorlagen und Google lässt sich aber ganz gut arbeiten. Ich hatte zwar mal Informatik studiert aber... naja wenn man nicht mehr programmiert ist das so ne Sache.
Toll aber dass du das Skript verwendest, dass es jemandem Nutzt freut mich!
Ich selbst wollte nur die Möglichkeit haben, habe aber in der Automatisierung bisher noch nichts wirklich nützliches realisiert. Hast du deinen Mäher eingebunden oder verwendest du auch nur die Sensordaten?
Könntest du mal dir die Dateien laden: https://drive.google.com/drive/folde...AN?usp=sharing
in der "data" deine Login Daten eintragen und dann die index.php aufrufen. Die Ausgabe würde mich interessieren. Meine Hoffnung wäre dass die Ausgabe der Sensor-Werte direkt läuft ohne weitere Anpassung.
Danke schonmal vorab!
Viele Grüße
MichaelKommentar
-
Ach ja, mich würde auch interessieren welche Daten derzeit bei den Nutzern des Skripts verwendet werden. Welche davon müssen aufbereitet werden? Gerade bei denen die nur als String zur Verfügung stehen wäre interessant ob der Aufwand lohnt. Alle Zeit und Datum Angaben könnte man auch besser einlesen und direkt schon in die eigene Zeitzone umrechnen. Ist nur eben die Frage ob irgendwer überhaupt einen Anwendungsfall dafür hat.
Ach ja hat jemand eine Ahnung wie sehr der MiniServer "gestresst" wird wenn ich dem einfach alle Daten per UDP sende. Oder ob es sinnvoll wäre selektieren zu können was überhaupt versendet wird.
Viele Grüße
MichaelKommentar
Kommentar