Willkommen im Loxone Community Forum. Um alle Funktionen nutzen und sehen zu können, registriere dich bitte zuerst. Dies gilt auch für das herunterladen von Dateien.
Dieser Bereich ist für fertige Lösungen gedacht. Nutze bitte für Diskussionen die anderen Bereiche.
ich habe das Script jetzt auch schon 2 Jahre im Einsatz (noch aus dem Roboterforum) und danke dir das du jetzt ein Loxberry-Script daraus machen willst.
Zitat von Labmaster
Mal was grundsätzliches zu dem System:
Interessant wird das ganze erst wenn man rausfindet wie man direkt mit den Geräten kommunizieren kann ohne über eine Cloud (in dem Fall wohl .husqvarnagroup.net) gehen zu müssen.
Wer will schon seine Geräte Zuhause über den Umweg durch eine Internetcloud eines Herstellers gesteuert haben, würde jedenfalld bei mir nie in Frage kommen.
Aber wie schon mal von Labmaster erwähnt:
Gibt es denn dann auch die Möglichkeit den Robow zu steuern ohne über Loxberry > Husqvarna-Cloud > Gateway > Robow und Loxone gehen zu müssen.
Normal müsste es doch auch ohne die Husqvarna-Cloud gehen.
Viele Grüße
Hesch@
Einen Kommentar schreiben:
Ein Gast antwortete
Hi Michael, das sieht schonmal richtig gut aus. Ich gucke morgen mal genau nach, welche Daten ich derzeit verwende und später vielleicht verwenden möchte.
Danke und Viele Grüße,
Ausgabe mit 2 Sensoren und Mäher:
Code:
Location:My Garden
authorized_at:2018-05-05T16:11:59.341Z
address:#######
latitude:#######
longitude:#######
[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: #######
Data to send: gateway.Gateway.gateway.ip_address:[######
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:SILENO city
configuration_synchronized:1
[B]Categorie: [/B]device_info
manufacturer: Datatyp String - Value: Gardena
Data to send: mower.SILENO city.device_info.manufacturer:[Gardena]
product: Datatyp String - Value: 3-DEVICE
Data to send: mower.SILENO city.device_info.product:[3-DEVICE]
serial_number: Datatyp String - Value: 00035653
Data to send: mower.SILENO city.device_info.serial_number:[00035653]
version: Datatyp String - Value: 3.0.0-2.5.2-1.2.6-rc2-ICD1.17_1.4.8
Data to send: mower.SILENO city.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.SILENO city.device_info.category:[mower]
last_time_online: Datatyp String - Value: 2018-07-08T21:02:57.008Z
Data to send: mower.SILENO city.device_info.last_time_online:[2018-07-08T21:02:57.008Z]
sgtin: Datatyp String - Value: 3034F8EE9006008000008B45
Data to send: mower.SILENO city.device_info.sgtin:[3034F8EE9006008000008B45]
[B]Categorie: [/B]battery
level: Datatyp Int - Value: 100%
timestamp:2018-07-08T21:02:56.739Z
Data to send: mower.SILENO city.battery.level:100
charging: Datatyp Bool - Value: 0
timestamp:2018-07-08T21:02:56.739Z
--->Possible Values: array ( 0 => 'true', 1 => 'false', )
Data Value at Position: 1
Data to send: mower.SILENO city.battery.charging:1
[B]Categorie: [/B]radio
quality: Datatyp Int - Value: 40%
timestamp:2018-07-08T21:02:56.775Z
Data to send: mower.SILENO city.radio.quality:40
connection_status: Datatyp String - Value: status_device_alive
timestamp:2018-05-28T05:22:36.289Z
--->Possible Values: array ( 0 => 'unknown', 1 => 'status_device_unreachable', 2 => 'status_device_alive', )
Data Value at Position: 2
Data to send: mower.SILENO city.radio.connection_status:2[status_device_alive]
state: Datatyp String - Value: poor
timestamp:2018-07-08T21:02:56.804Z
--->Possible Values: array ( 0 => 'bad', 1 => 'poor', 2 => 'good', 3 => 'undefined', )
Data Value at Position: 1
Data to send: mower.SILENO city.radio.state:1[poor]
[B]Categorie: [/B]firmware
firmware_status: Datatyp String - Value: up_to_date
Data to send: mower.SILENO city.firmware.firmware_status:1[up_to_date]
firmware_upload_progress: Datatyp Int - Value: 0
Data to send: mower.SILENO city.firmware.firmware_upload_progress:0
firmware_available_version: Datatyp String - Value:
Data to send: mower.SILENO city.firmware.firmware_available_version:0
inclusion_status: Datatyp String - Value: included
Data to send: mower.SILENO city.firmware.inclusion_status:0[included]
firmware_update_start: Datatyp Bool - Value: 1
Data to send: mower.SILENO city.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.SILENO city.firmware.firmware_command:0[idle]
[B]Categorie: [/B]mower
manual_operation: Datatyp Bool - Value: 0
timestamp:2018-07-08T21:02:56.838Z
Data to send: mower.SILENO city.mower.manual_operation:0
status: Datatyp String - Value: parked_daily_limit_reached
timestamp:2018-07-08T21:02:56.865Z
--->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: 17
Data to send: mower.SILENO city.mower.status:17[parked_daily_limit_reached]
error: Datatyp String - Value: no_message
timestamp:2018-07-08T21:02:56.865Z
--->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.SILENO city.mower.error:0[no_message]
last_error_code: Datatyp String - Value: no_message
timestamp:2018-07-08T21:02:57.008Z
Data to send: mower.SILENO city.mower.last_error_code:0[no_message]
source_for_next_start: Datatyp String - Value: completed_cutting_daily_limit
timestamp:2018-07-08T21:02:56.894Z
--->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: 1
Data to send: mower.SILENO city.mower.source_for_next_start:1[completed_cutting_daily_limit]
timestamp_next_start: Datatyp String - Value: 2018-07-09T07:00Z
timestamp:2018-07-08T21:02:56.922Z
Data to send: mower.SILENO city.mower.timestamp_next_start:1[2018-07-09T07:00Z]
override_end_time: Datatyp String - Value: 2018-06-30T06:34:32Z
timestamp:2018-07-08T21:02:56.953Z
Data to send: mower.SILENO city.mower.override_end_time:1[2018-06-30T06:34:32Z]
timestamp_last_error_code: Datatyp String - Value: 1970-01-01T00:00Z
timestamp:2018-07-08T21:02:57.036Z
Data to send: mower.SILENO city.mower.timestamp_last_error_code:1[1970-01-01T00:00Z]
[B]Categorie: [/B]mower_stats
cutting_time: Datatyp Int - Value: 282h
timestamp:2018-07-08T14:17:55.847Z
Data to send: mower.SILENO city.mower_stats.cutting_time:282
charging_cycles: Datatyp Int - Value: 184
timestamp:2018-07-08T12:32:56.733Z
Data to send: mower.SILENO city.mower_stats.charging_cycles:184
collisions: Datatyp Int - Value: 3302
timestamp:2018-07-08T14:17:55.985Z
Data to send: mower.SILENO city.mower_stats.collisions:3302
running_time: Datatyp Int - Value: 292h
timestamp:2018-07-08T14:17:55.810Z
Data to send: mower.SILENO city.mower_stats.running_time:292
[B]Categorie: [/B]mower_type
base_software_up_to_date: Datatyp Bool - Value: 1
timestamp:2018-05-05T16:40:49.006Z
Data to send: mower.SILENO city.mower_type.base_software_up_to_date:1
mmi_version: Datatyp String - Value: 11.12
timestamp:2018-05-05T16:40:48.992Z
Data to send: mower.SILENO city.mower_type.mmi_version:1[11.12]
mainboard_version: Datatyp String - Value: 11.6
timestamp:2018-05-05T16:40:49.006Z
Data to send: mower.SILENO city.mower_type.mainboard_version:1[11.6]
comboard_version: Datatyp String - Value: 11.6
timestamp:2018-05-05T16:40:49.010Z
Data to send: mower.SILENO city.mower_type.comboard_version:1[11.6]
device_type: Datatyp String - Value: 14
timestamp:2018-05-05T16:40:49.018Z
Data to send: mower.SILENO city.mower_type.device_type:1[14]
device_variant: Datatyp String - Value: 7
timestamp:2018-05-05T16:40:49.026Z
Data to send: mower.SILENO city.mower_type.device_variant:1[7]
[B]Device Category:sensor[/B]
Device Name:Sensor-Beet
configuration_synchronized:1
[B]Categorie: [/B]device_info
manufacturer: Datatyp String - Value: Gardena
Data to send: sensor.Sensor-Beet.device_info.manufacturer:1[Gardena]
product: Datatyp String - Value: 2-DEVICE
Data to send: sensor.Sensor-Beet.device_info.product:1[2-DEVICE]
serial_number: Datatyp String - Value: 00007333
Data to send: sensor.Sensor-Beet.device_info.serial_number:1[00007333]
version: Datatyp String - Value: 1.0.3-2.5.2-1.2.5-ICD1.17_1.0.18
Data to send: sensor.Sensor-Beet.device_info.version:1[1.0.3-2.5.2-1.2.5-ICD1.17_1.0.18]
category: Datatyp String - Value: sensor
Data to send: sensor.Sensor-Beet.device_info.category:1[sensor]
last_time_online: Datatyp String - Value: 2018-07-08T20:56:46.012Z
Data to send: sensor.Sensor-Beet.device_info.last_time_online:1[2018-07-08T20:56:46.012Z]
sgtin: Datatyp String - Value: 3034F8EE9012674000001CA5
Data to send: sensor.Sensor-Beet.device_info.sgtin:1[3034F8EE9012674000001CA5]
[B]Categorie: [/B]battery
level: Datatyp Int - Value: 92%
timestamp:2018-06-15T17:20:20.851Z
Data to send: sensor.Sensor-Beet.battery.level:92
disposable_battery_status: Datatyp String - Value: ok
timestamp:2018-05-26T16:52:55.325Z
--->Possible Values: array ( 0 => 'out_of_operation', 1 => 'replace_now', 2 => 'low', 3 => 'ok', 4 => 'undefined', )
Data Value at Position: 3
Data to send: sensor.Sensor-Beet.battery.disposable_battery_status:3[ok]
[B]Categorie: [/B]radio
quality: Datatyp Int - Value: 50%
timestamp:2018-07-08T20:56:46.046Z
Data to send: sensor.Sensor-Beet.radio.quality:50
connection_status: Datatyp String - Value: unknown
timestamp:2018-07-08T21:03:06.709Z
--->Possible Values: array ( 0 => 'unknown', 1 => 'status_device_unreachable', 2 => 'status_device_alive', )
Data Value at Position: 0
Data to send: sensor.Sensor-Beet.radio.connection_status:0[unknown]
state: Datatyp String - Value: good
timestamp:2018-07-08T20:56:46.073Z
--->Possible Values: array ( 0 => 'bad', 1 => 'poor', 2 => 'good', 3 => 'undefined', )
Data Value at Position: 2
Data to send: sensor.Sensor-Beet.radio.state:2[good]
[B]Categorie: [/B]ambient_temperature
temperature: Datatyp Int - Value: 19C
timestamp:2018-07-08T20:56:45.949Z
Data to send: sensor.Sensor-Beet.ambient_temperature.temperature:19
frost_warning: Datatyp String - Value: no_frost
timestamp:2018-07-08T20:56:45.984Z
--->Possible Values: array ( 0 => 'no_frost', 1 => 'frost', 2 => 'undefined', )
Data Value at Position: 0
Data to send: sensor.Sensor-Beet.ambient_temperature.frost_warning:0[no_frost]
[B]Categorie: [/B]soil_temperature
temperature: Datatyp Int - Value: 22C
timestamp:2018-07-08T20:35:53.922Z
Data to send: sensor.Sensor-Beet.soil_temperature.temperature:22
[B]Categorie: [/B]humidity
humidity: Datatyp Int - Value: 95%
timestamp:2018-07-08T20:36:13.484Z
Data to send: sensor.Sensor-Beet.humidity.humidity:95
[B]Categorie: [/B]light
light: Datatyp Int - Value: 0lx
timestamp:2018-07-08T20:56:46.012Z
Data to send: sensor.Sensor-Beet.light.light:0
[B]Categorie: [/B]identification
[B]Categorie: [/B]firmware
firmware_status: Datatyp String - Value: up_to_date
Data to send: sensor.Sensor-Beet.firmware.firmware_status:0[up_to_date]
firmware_upload_progress: Datatyp Int - Value: 0
Data to send: sensor.Sensor-Beet.firmware.firmware_upload_progress:0
firmware_available_version: Datatyp String - Value:
Data to send: sensor.Sensor-Beet.firmware.firmware_available_version:0
inclusion_status: Datatyp String - Value: included
Data to send: sensor.Sensor-Beet.firmware.inclusion_status:0[included]
firmware_update_start: Datatyp Bool - Value: 1
Data to send: sensor.Sensor-Beet.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: sensor.Sensor-Beet.firmware.firmware_command:0[idle]
[B]Device Category:sensor[/B]
Device Name:Sensor-Hecke
configuration_synchronized:1
[B]Categorie: [/B]device_info
manufacturer: Datatyp String - Value: Gardena
Data to send: sensor.Sensor-Hecke.device_info.manufacturer:0[Gardena]
product: Datatyp String - Value: 2-DEVICE
Data to send: sensor.Sensor-Hecke.device_info.product:0[2-DEVICE]
serial_number: Datatyp String - Value: 00005211
Data to send: sensor.Sensor-Hecke.device_info.serial_number:0[00005211]
version: Datatyp String - Value: 1.0.3-2.5.2-1.2.5-ICD1.17_1.0.18
Data to send: sensor.Sensor-Hecke.device_info.version:0[1.0.3-2.5.2-1.2.5-ICD1.17_1.0.18]
category: Datatyp String - Value: sensor
Data to send: sensor.Sensor-Hecke.device_info.category:0[sensor]
last_time_online: Datatyp String - Value: 2018-07-08T20:58:48.279Z
Data to send: sensor.Sensor-Hecke.device_info.last_time_online:0[2018-07-08T20:58:48.279Z]
sgtin: Datatyp String - Value: 3034F8EE901267400000145B
Data to send: sensor.Sensor-Hecke.device_info.sgtin:0[3034F8EE901267400000145B]
[B]Categorie: [/B]battery
level: Datatyp Int - Value: 92%
timestamp:2018-06-24T19:40:51.350Z
Data to send: sensor.Sensor-Hecke.battery.level:92
disposable_battery_status: Datatyp String - Value: ok
timestamp:2018-05-31T17:47:16.260Z
--->Possible Values: array ( 0 => 'out_of_operation', 1 => 'replace_now', 2 => 'low', 3 => 'ok', 4 => 'undefined', )
Data Value at Position: 3
Data to send: sensor.Sensor-Hecke.battery.disposable_battery_status:3[ok]
[B]Categorie: [/B]radio
quality: Datatyp Int - Value: 40%
timestamp:2018-07-08T20:58:48.322Z
Data to send: sensor.Sensor-Hecke.radio.quality:40
connection_status: Datatyp String - Value: unknown
timestamp:2018-07-08T21:03:06.714Z
--->Possible Values: array ( 0 => 'unknown', 1 => 'status_device_unreachable', 2 => 'status_device_alive', )
Data Value at Position: 0
Data to send: sensor.Sensor-Hecke.radio.connection_status:0[unknown]
state: Datatyp String - Value: poor
timestamp:2018-07-08T20:58:48.349Z
--->Possible Values: array ( 0 => 'bad', 1 => 'poor', 2 => 'good', 3 => 'undefined', )
Data Value at Position: 1
Data to send: sensor.Sensor-Hecke.radio.state:1[poor]
[B]Categorie: [/B]ambient_temperature
temperature: Datatyp Int - Value: 18C
timestamp:2018-07-08T20:41:03.910Z
Data to send: sensor.Sensor-Hecke.ambient_temperature.temperature:18
frost_warning: Datatyp String - Value: no_frost
timestamp:2018-07-08T20:41:03.946Z
--->Possible Values: array ( 0 => 'no_frost', 1 => 'frost', 2 => 'undefined', )
Data Value at Position: 0
Data to send: sensor.Sensor-Hecke.ambient_temperature.frost_warning:0[no_frost]
[B]Categorie: [/B]soil_temperature
temperature: Datatyp Int - Value: 19C
timestamp:2018-07-08T20:19:36.891Z
Data to send: sensor.Sensor-Hecke.soil_temperature.temperature:19
[B]Categorie: [/B]humidity
humidity: Datatyp Int - Value: 94%
timestamp:2018-07-08T20:19:56.913Z
Data to send: sensor.Sensor-Hecke.humidity.humidity:94
[B]Categorie: [/B]light
light: Datatyp Int - Value: 0lx
timestamp:2018-07-08T20:58:48.279Z
Data to send: sensor.Sensor-Hecke.light.light:0
[B]Categorie: [/B]identification
[B]Categorie: [/B]firmware
firmware_status: Datatyp String - Value: up_to_date
Data to send: sensor.Sensor-Hecke.firmware.firmware_status:0[up_to_date]
firmware_upload_progress: Datatyp Int - Value: 0
Data to send: sensor.Sensor-Hecke.firmware.firmware_upload_progress:0
firmware_available_version: Datatyp String - Value:
Data to send: sensor.Sensor-Hecke.firmware.firmware_available_version:0
inclusion_status: Datatyp String - Value: included
Data to send: sensor.Sensor-Hecke.firmware.inclusion_status:0[included]
firmware_update_start: Datatyp Bool - Value: 1
Data to send: sensor.Sensor-Hecke.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: sensor.Sensor-Hecke.firmware.firmware_command:0[idle]
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.
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
Michael
Einen Kommentar schreiben:
Ein Gast antwortete
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.
Die Funktion getFirstDeviceOfCategory kopiert und als getFirstDeviceOfCategory2 eingefügt. Dann die Zeile if "($device -> category == $category)" gegen "if ($device -> name == $category)" getauscht.
Code:
function getFirstDeviceOfCategory2($category)
{
foreach($this -> devices as $locationId => $devices)
{
foreach($devices as $device)
if ($device -> name == $category)
return $device;
}
}
In der Index.php die Funktion dann wie folgt aufgerufen:
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]
Derzeit können nur ein Sensor und ein Ventil angesteuert werden, mehrere wären möglich sind aber entsprechend aufwändig zu integrieren.
Hi,
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?
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ß, Johny
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.
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?
Einen Kommentar schreiben:
Ein Gast antwortete
Meine Frage hat sich erledigt. Es funktioniert jetzt!
Gruß Marcus
Einen Kommentar schreiben:
Ein Gast antwortete
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?
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?
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
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Einen Kommentar schreiben: