HowTo: Gardena Smart System

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hesch@
    antwortet
    Hallo Michael,

    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:


  • Gast
    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]

    Einen Kommentar schreiben:


  • Diablo_Vmax1200
    antwortet
    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
    Michael

    Einen Kommentar schreiben:


  • Diablo_Vmax1200
    antwortet
    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
    Michael

    Einen Kommentar schreiben:


  • Gast
    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.

    Code:
    const NAME_SENSOR_01 = "Sensor-Beet";
    const NAME_SENSOR_02 = "Sensor-Hecke";
    const NAME_SENSOR_03 = "Sensor-Rasen";
    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:

    Code:
    $sensor1 = $gardena -> getFirstDeviceOfCategory2($gardena::NAME_SENSOR_01 );
    $sensor2 = $gardena -> getFirstDeviceOfCategory2($gardena::NAME_SENSOR_02 );
    $sensor3 = $gardena -> getFirstDeviceOfCategory2($gardena::NAME_SENSOR_03 );
    Viele Grüße,

    Einen Kommentar schreiben:


  • Diablo_Vmax1200
    antwortet
    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]
    Viele Grüße
    Michael

    Einen Kommentar schreiben:


  • loxnoob
    antwortet
    Klasse Script, vielen Dank auch von mir.

    Grüße
    Zuletzt geändert von loxnoob; 01.07.2018, 13:23.

    Einen Kommentar schreiben:


  • Gast
    Ein Gast antwortete
    Zitat von wrack solutionist

    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?

    Viele Grüße,

    Einen Kommentar schreiben:


  • tokylo
    kommentierte 's Antwort
    Danke für deinen Vorschlag, ich habe jetzt auch deine Lösung übernommen. Gruss Tokylo

  • Johny
    antwortet
    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

    Einen Kommentar schreiben:


  • tokylo
    antwortet
    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?

    Einen Kommentar schreiben:


  • Gast
    Ein Gast antwortete
    Meine Frage hat sich erledigt. Es funktioniert jetzt!

    Gruß Marcus

    Einen Kommentar schreiben:


  • Gast
    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?

    Vielen Dank für eure Hilfe :-)

    Gruß Marcus

    Einen Kommentar schreiben:


  • tokylo
    antwortet
    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?

    Einen Kommentar schreiben:


  • Johny
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...