Gå til innhold
  • Bli medlem

Gardena R38Li med Robonect modul


Anbefalte innlegg

Vurderer å selge min Gardena R38Li med Robonect modul, klipper har gått 63t i skrivende stund og er noen uker gammel.

 

Jeg har en vanskelig bakke i hagen som gjør at denne ikke fungerer optimalt hos meg og jeg har bestilt en ny Husquarna 315X(som krever en annen versjon Robonect)).

 

Ønsker kr 7500,- inkl Robonect modul.

Link til modul: https://karlhaeussler.de/cgi-bin/his-webshop.pl?f=NR&c=wlan10&t=t_temart

 

Klipper: 

https://coop.no/sortiment/obs-bygg/hageuterom/hagemaskiner/gressklippere/gardena-04071-54?variantCode=209087

 

Befinner seg i Ås, 30min utenfor Oslo

 

 

 

Endret av kimstoroy
Lenke til innlegg
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

  • Lignende innhold

    • Av Guahtdim
      Link til siste versjon
      AutomowerConnectSeer 0.0.1.0
       
      NB: Kun testet i Windows 10
       
      Hva plugin gjør:
      Plugin for oppkobling mot Automower Connect API som gjør at man kan få info om og styre Husqvarna Autmower (robotgressklipper) gitt at denne er på nett og du kan bruke en app (AMC i android) for å kontakte den).
       
      I tillegg til å få devicer i HomerSeer med data om gressklipperen status så er det også følgende actions til bruk i events:
      Endre poll tid (hvor ofte man spør Automower Connect API om data) Park Resume Schedule Pause Start Park until further notice Park until next schedule Get all mowers data  
      Hva gjør jeg for å installere?
      VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt c:\program files (x86)\Homeseer HS3) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_AutomowerConnectSeer.exe og HSPI_AutomowerConnectSeer.exe.config, mens du i katalogen Homeseer HS3\bin skal ha fått en ny underkatalog -  AutomowerConnectSeer - med 28 filer) og under html\images katalogen skal du ha fått en AutomowerConnectSeer katalog med 24 filer   Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på RFLinkSeer  
       
      For å få dette til å virke må du inn og registrere deg på nettsiden (bruk samme epost og passord som på AMC app)
      https://developer.1689.cloud/
      Der må du også lage din egen applikasjon (etter at du har fått logget inn)
       
      Epost, passord og applikasjonsid må du registrere i plugin

       
      Når du har gjort dette (hvis du har fått det til riktig) så vil du få oversikt over din(e) klipper(e) i hoved konfigurasjonen

      Rask forklaring:
      Defalut time between check of cloud service  -  periode mellom oppkobling mot skytjenesten for å hente data
      Default number of minutes to mow when using Start button - Antall minutter klipperen klipper når du trykker på Start i HomeSeer
      Default number of minutes to park when using Park button - Antall minutter som klipperen står parkert når du trykker på Park i HomeSeer
      Log level - hvilket nivå med logging som gjøres til HomeSeer (og eventuelt fil)
      Number of calls this month - antall kall mot skytjenesten så langt denne måneden (NB NB det er opplyst om at max er 10 000 kall i måneden)
      Og oversikt over klipper(e).
      Trykk Add på de du ønsker å ha inn i HomeSeer. Trykk Delete hvis du vil fjerne de (events vil ikke bli fjernet). Fix devices er en knapp for å prøve å rette opp hvis du f.eks. har slettet noe du ikke skulle.
       
      Oversikt i HomeSeer 3

       
      Rask forklaring:
      Connected - Status på om klipper er koblet til skytjeneste. 3 typer: Disconnected=-1, connected=0, connected error =1-99999.
      Battery - prosent av batteri igjen
      Mode - "MAIN_AREA"=gjør noe i definert hovedområde,  "SECONDARY_AREA"gjør noe i definert sekundærområde, "HOME"=er hjemme (ladestasjon), "DEMO"=kjører rundt uten å ha blader igang,  "UNKNOWN" =Ukjent status
      Activity - "UNKNOWN" =Ukjent status, "NOT_APPLICABLE"=Ingen verdi, "MOWING"=Klipper, "GOING_HOME"=kjører hjem, "CHARGING"=lader, "LEAVING"=kjører ut av ladestasjon,  "PARKED_IN_CS"=Parkert i ladestasjon, "STOPPED_IN_GARDEN"=stoppet i hagen
      State - "UNKNOWN" =Ukjent status, "NOT_APPLICABLE"=Ingen verdi, "PAUSED"=pauset, "IN_OPERATION"=går som normalt/står i lader, "WAIT_UPDATING"=oppdaterer software, "WAIT_POWER_UP"=Slår seg på, "RESTRICTED"=begrenset på grunn av oppsett i kalender,  "OFF"=av,  "STOPPED"=stoppet opp, "ERROR"/"FATAL_ERROR"/"ERROR_AT_POWER_UP"=Feilsituasjoner
      Command - Viser om siste kommando ble oversendt ok og hva den var
      Error - Feilmelding hvis det er rapportert en feil
      Last Connected - Tidspunkt for når klipperen var sistt tilkoblet
      Next Start - Neste start av klipperen
       
      Eksempler på actions i events
       

      Park brukes for å få klipper(e) til å parkere for en gitt periode. Start vil se nesten helt lik ut, men der er perioden du oppgir hvor lenge den skal klippe.
       

      Resume schedule, Pause, Park until further notice, Park until next Schedule ser veldig like ut og du kan der bestemme hvilke klipper som skal få tilsendt action.
       

      Set cloud poll interval gjør at du kan via events endre hvor ofte du henter ned data fra skytjenesten.
       
      Endringslogg:
      0.0.1.0 - Fikset opp i en feiltolkning av feil med klipperen. Feilen ble liggende selv etter at alt var riktig.
      0.0.0.8 - Fikset en bug i håndtering av error code. Nå vil den korrekt rapportere feil og man kan sjekke connection eller error device for dette. 
      0.0.0.7 - Oppdatert hvordan intervall velges i endel actions. Man får nå opp HomeSeers "tidsboks". 
      0.0.0.6 - Lagt til manglende instruksjon på hvordan å legge til API hos developer.1689.cloud. 
      0.0.0.5 - Lagt på litt ekstra logging. 
      0.0.0.4 - Fikset logiske feil i actions som gjorde at man ikke fikk de godkjent. Endring av poll tid vil ikke bli lagret ned slik at man ved oppstart benytter det som er satt i default time between checks. 
      0.0.0.3 - Fikset sjekk på manglende verdier slik at det ikke kræsjer før man har lagt inn applikasjons id, epost og passord 
      0.0.0.2 - Fikset statusverdier slik at det blir enklere å lage events. Fikset noen Copy&Paste feil
      0.0.0.1 - Første versjon. Sikkert endel mangler som dukker opp
       
      Problemer/utfordringer/videreutvikling
      Må kunne sette Poll interval tilbake til default ved f.eks. omstart Egen action for å hente ut data Egen trigger for feil Mulighet for å sette opp "timeplan" for poll interval? Benytte "uoffisiellt" grensesnitt (AMC) for å hente ut gps-data, hente/sette kuttehøyde, spiralkutting etc Trigger/condition for å trigge på antall kall mot skyen  
       
       
    • Av Moskus
      RobonectSeer er en plugin for deg med Gardena (eller annen støttet gressklipper) og som har montert et wifi-kort.
      Pakk ut i HS3-mappen, og start. Plugg inn (den faste) IPen til gressklipperen, og tut og kjør.

      For dette wifi-kortet:
      https://robomaeher.de/blog/wlan-modul-automowergardena/
       
       

       

    • Av Jonnyhar
      Hei.
       
      Jeg har laget et script for å starte og parkere Gardena Smart Sileno gressklippere. Testet og fungerer på min Gardena Smart Sileno R100Li.
      Legg inn e-postadressen, passordet, og navnet på klipperen på linje 12->14 i skriptet.
      Sett logJson = True for å se alt i json-responsen fra Gardena. Det ligger mye nyttig informasjon i responsen fra get_device_id.
       
      Kall scriptet med parameter start eller stop.
      Disse parametrene blir så brukt lenger nede i scriptet til:
       
          'Available start commands:
          'Start according to schedule: "{""name"":""start_resume_schedule"", ""parameters"":{}}"
          'Start overriding schedule. Run for 1440 minutes: "{""name"":""start_override_timer"", ""parameters"":{""duration"": 1440}}"
          
          'Available stop commands:
          'Park and pause all schedules: "{""name"":""park_until_further_notice""}"
          'Park and start again at next schedule: "{""name"":""park_until_next_timer""}"
      Imports System.IO Imports System.Net '*** Choose if json-responces should get written to the log *** Const logJson As Boolean = False '************************************************************** Public Sub Main(ByVal command As String) '*** Put in e-mailadress and password and lawnmover-name *** '*** They must be exactly as entered into the Gardena app *** Dim email As String = "myemail@gmail.com" Dim password As String = "Mypassword" Dim mower_name As String = "Name_of_lawnmower_in_gardena_app" '************************************************* '*** NO NEED TO EDIT BEHIND THIS POINT! *** '************************************************* 'Get token and username Dim jsonGetToken As String = "{""sessions"":{""email"":""" & email & """,""password"":""" & password & """}}" Dim tokenAndUser() As String = getToken(jsonGetToken) 'Get location Dim location As String = getLocation(tokenAndUser) 'Get device-id for lawnmover set in mower_name Dim locationAndToken(3) as String locationAndToken(0) = tokenAndUser(0) locationAndToken(1) = location locationAndToken(2) = mower_name Dim deviceId As String = getdeviceId(locationAndToken) 'Send start or stop command to mower Dim data(4) as String data(0) = tokenAndUser(0) data(1) = location data(2) = deviceId data(3) = command sendCommand(data) End Sub Public Function getToken(json As string) As String() 'Get token and user ID based on e-mail and password Dim strURL As String = "https://sg-api.dss.husqvarnagroup.net/sg-1/sessions" Dim myWebReq As HttpWebRequest Dim myWebResp As HttpWebResponse Dim encoding As New System.Text.UTF8Encoding Dim sr As StreamReader Dim result(2) As String Try Dim data As Byte() = encoding.GetBytes(json) myWebReq = DirectCast(WebRequest.Create(strURL), HttpWebRequest) myWebReq.ContentType = "application/json" myWebReq.ContentLength = data.Length myWebReq.Method = "POST" Dim myStream As Stream = myWebReq.GetRequestStream() If data.Length > 0 Then myStream.Write(data, 0, data.Length) myStream.Close() End If myWebResp = DirectCast(myWebReq.GetResponse(), HttpWebResponse) sr = New StreamReader(myWebResp.GetResponseStream()) Dim responseText As String = sr.ReadToEnd() if logJson Then hs.WriteLog("Gardena", "Response getToken: " & responseText) End If 'Search json for token Dim sSource As String = responseText 'String that is being searched Dim sDelimStart As String = """token"":""" 'First delimiting word Dim sDelimEnd As String = """,""user_id" 'Second delimiting word Dim nIndexStart As Integer = sSource.IndexOf(sDelimStart) 'Find the first occurrence of f1 Dim nIndexEnd As Integer = sSource.IndexOf(sDelimEnd) 'Find the first occurrence of f2 If nIndexStart > -1 AndAlso nIndexEnd > -1 Then '-1 means the word was not found. Dim token As String = Strings.Mid(sSource, nIndexStart + sDelimStart.Length + 1, nIndexEnd - nIndexStart - sDelimStart.Length) 'Crop the text between hs.WriteLog("Gardena", "Token: " & token) 'We got the token, continue to get the user id sDelimStart = "user_id"":""" 'First delimiting word sDelimEnd = """,""refresh_token" 'Second delimiting word nIndexStart = sSource.IndexOf(sDelimStart) 'Find the first occurrence of f1 nIndexEnd = sSource.IndexOf(sDelimEnd) 'Find the first occurrence of f2 If nIndexStart > -1 AndAlso nIndexEnd > -1 Then '-1 means the word was not found. Dim user As String = Strings.Mid(sSource, nIndexStart + sDelimStart.Length + 1, nIndexEnd - nIndexStart - sDelimStart.Length) 'Crop the text between hs.WriteLog("Gardena", "User: " & user) result(0) = token result(1) = user return result Else hs.WriteLog("Gardena", "Error: Did not receive user ID") End If Else hs.WriteLog("Gardena", "Error: Did not receive token") End If Catch ex As Exception : hs.writelog("Gardena", "Error: " & ex.Message.ToString) End Try End Function Public Function getLocation(tokenAndUser() As String) As String 'Get location based on token and user id Dim token As String = tokenAndUser(0) Dim user As String = tokenAndUser(1) Dim strURL As String = "https://sg-api.dss.husqvarnagroup.net/sg-1/locations/?user_id=" & user Dim myWebReq As HttpWebRequest Dim myWebResp As HttpWebResponse Dim sr As StreamReader Try myWebReq = DirectCast(WebRequest.Create(strURL), HttpWebRequest) myWebReq.ContentType = "application/json" myWebReq.Method = "GET" myWebReq.Headers.Add("X-session", token) myWebResp = DirectCast(myWebReq.GetResponse(), HttpWebResponse) sr = New StreamReader(myWebResp.GetResponseStream()) Dim responseText As String = sr.ReadToEnd() if logJson Then hs.WriteLog("Gardena", "Response getLocation: " & responseText) End if 'Search json for location Dim sSource As String = responseText 'String that is being searched Dim sDelimStart As String = """id"":""" 'First delimiting word Dim sDelimEnd As String = """,""name" 'Second delimiting word Dim nIndexStart As Integer = sSource.IndexOf(sDelimStart) 'Find the first occurrence of f1 Dim nIndexEnd As Integer = sSource.IndexOf(sDelimEnd) 'Find the first occurrence of f2 If nIndexStart > -1 AndAlso nIndexEnd > -1 Then '-1 means the word was not found. Dim location As String = Strings.Mid(sSource, nIndexStart + sDelimStart.Length + 1, nIndexEnd - nIndexStart - sDelimStart.Length) 'Crop the text between hs.WriteLog("Gardena", "Location: " & location) return location Else hs.WriteLog("Gardena", "Error: Did not receive location") End If Catch ex As Exception : hs.writelog("Gardena", "Error: " & ex.Message.ToString) End Try End Function Public Function getdeviceId(tokenAndLocation() As String) As String 'Get device id for lawnmover based on location and mower_name Dim token As String = tokenAndLocation(0) Dim location As String = tokenAndLocation(1) Dim mower_name As String = tokenAndLocation(2) Dim strURL As String = "https://sg-api.dss.husqvarnagroup.net/sg-1/devices?locationId=" & location Dim myWebReq As HttpWebRequest Dim myWebResp As HttpWebResponse Dim sr As StreamReader Try myWebReq = DirectCast(WebRequest.Create(strURL), HttpWebRequest) myWebReq.ContentType = "application/json" myWebReq.Method = "GET" myWebReq.Headers.Add("X-session", token) myWebResp = DirectCast(myWebReq.GetResponse(), HttpWebResponse) sr = New StreamReader(myWebResp.GetResponseStream()) Dim responseText As String = sr.ReadToEnd() if logJson Then hs.WriteLog("Gardena", "Response getLocation: " & responseText) End If 'Finn Device ID Dim sSource As String = responseText 'String that is being searched Dim sDelimEnd As String = """,""name"":""" & mower_name & """,""category"":""mower""" 'Second delimiting word Dim nIndexStart As Integer = sSource.IndexOf(sDelimEnd) - 36 Dim nIndexEnd As Integer = sSource.IndexOf(sDelimEnd) 'Find the first occurrence of f2 If nIndexStart > -1 AndAlso nIndexEnd > -1 Then '-1 means the word was not found. Dim deviceId As String = Strings.Mid(sSource, nIndexStart + 1, nIndexEnd - nIndexStart) 'Crop the text between hs.WriteLog("Gardena", "Device ID: " & deviceId) return deviceId Else hs.WriteLog("Gardena", "Error: Did not receive device ID") End If Catch ex As Exception : hs.writelog("Gardena", "Error: " & ex.Message.ToString) End Try End Function Public Function sendCommand(data() As String) 'Send start or stop to the mower. Dim token As String = data(0) Dim location As String = data(1) Dim device As String = data(2) Dim command As String = data(3) Dim json As String '*** Here you can change what start and stop does.*** 'Available start commands: 'Start according to schedule: "{""name"":""start_resume_schedule"", ""parameters"":{}}" 'Start overriding schedule. Run for 1440 minutes: "{""name"":""start_override_timer"", ""parameters"":{""duration"": 1440}}" 'Available stop commands: 'Park and pause all schedules: "{""name"":""park_until_further_notice""}" 'Park and start again at next schedule: "{""name"":""park_until_next_timer""}" if command = "start" Then json = "{""name"":""start_resume_schedule"", ""parameters"":{}}" else if command = "stop" Then json = "{""name"":""park_until_further_notice""}" else hs.writelog("Gardena", "Error: Angi start eller stop som parameter") End If Dim strURL As String = "https://sg-api.dss.husqvarnagroup.net/sg-1/devices/" & device & "/abilities/mower/command?locationId=" & location Dim myWebReq As HttpWebRequest Dim myWebResp As HttpWebResponse Dim encoding As New System.Text.UTF8Encoding Dim sr As StreamReader Try Dim data As Byte() = encoding.GetBytes(json) myWebReq = DirectCast(WebRequest.Create(strURL), HttpWebRequest) myWebReq.ContentType = "application/json" myWebReq.ContentLength = data.Length myWebReq.Headers.Add("X-session", token) myWebReq.Method = "POST" Dim myStream As Stream = myWebReq.GetRequestStream() If data.Length > 0 Then myStream.Write(data, 0, data.Length) myStream.Close() End If myWebResp = DirectCast(myWebReq.GetResponse(), HttpWebResponse) sr = New StreamReader(myWebResp.GetResponseStream()) Dim responseText As String = sr.ReadToEnd() hs.WriteLog("Gardena", "Sent command: " & command) Catch ex As Exception : hs.writelog("Gardena", "Error: " & ex.Message.ToString) End Try End Function  
×
×
  • Opprett ny...