Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenHab MQTT und Landroid Mähroboter

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

    OpenHab MQTT und Landroid Mähroboter

    Hallo zusammen,

    leider gibt es ja noch keine direktes Binding für die aktuellen Landroid Mähroboter, jedoch wurde das iobroker Script als "Landroid <> MQTT Bridge" portiert.
    Diese habe ich nun ebenso wie MQTT an laufen und grundsätzlich funktioniert alles, was mit dem Roboter möglich ist.

    Somit kann nun das ordentliche einbinden in die Sitemap erfolgen, was für den Status bereits erfolgt ist.

    Folgendes Problem habe ich nun, meinen Wunsch zur Steuerung des Roboters umzusetzen.

    Der Roboter kann "lediglich" gestartet und nach Hause geschickt werden.
    Hierzu hört er auf zwei unterschiedliche MQTT Befehle
    • landroid/set/start (starts the mower)
    • landroid/set/stop (stops the mower)
    Ich habe schon gelesen, das ich unterschiedliche MQTT Befehle über ein Item senden kann, was ich hier nutzen wollte. Da ber beide Befehle ein ON erwarten, kann ich die ja schwerlich mit einem SwitchItem in der Sitemap machen :-/

    Mein Wunsch/Ziel wäre es
    • Ein Item in der .items => z.B. Switch eDolly_Action
    • Einen Button in der Sitemap, der je nach Status einen anderen Text hat und jeweils "ON" an das entsprechende Item zu senden
      • wenn "mowing" dann Button = Home
      • wenn "home" dann Button = Start

    Ich hatte versucht folgendes anzulegen
    Code:
    Switch eDolly_Action    <lawnmower>    {mqtt=">[mqtt:landroid/set/start:command:*:default], >[mqtt:landroid/set/stop:command:*:default]", autoupdate="false"}
    jedoch scheitert dies an dem entsprechenden Button in der Sitemap, da ein Switch Item ja nicht 2x ON als Status haben kann
    Code:
    Switch item=eDolly_Action mappings=[ON="Start", ON="Home"]
    Auch wäre es natürlich cool, wenn die Buttons nur bei entsprechendem Status (anderes Objekt, welches nur gelesen werden kann) aktiv ist.
    Es macht ja wenig Sinn einen "Start" Befehl zu senden, wenn der Roboter schon mäht und ebenso macht "Home" keinen Sinn, wenn er schon auf dem Weg zur Station ist.
    Ich weiß nicht, ob ich den Roboter vom "Weg nach Hause" noch einmal aktivieren kann zum mähen, dies üsste ich noch testen.

    Evtl. habt ihr ja einen Tipp, wie ich dies angehen kann??

    Viele Grüße,
    Jörg

    #2
    Hello noch einmal ;-)

    Ich habe noch ein wenig getestet und dies derzeit nun wie folgt umgesetzt

    Items
    Code:
    [COLOR=#569cd6]Switch[/COLOR][COLOR=#d4d4d4] eDolly_Start         [/COLOR][COLOR=#ce9178]""[/COLOR][COLOR=#d4d4d4]<[/COLOR][COLOR=#d4d4d4]lawnmower[/COLOR][COLOR=#d4d4d4]>[/COLOR][COLOR=#d4d4d4] {mqtt[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]">[mqtt:landroid/set/start:command:*:default]"[/COLOR][COLOR=#d4d4d4], autoupdate[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]"false"[/COLOR][COLOR=#d4d4d4]}[/COLOR]
    [COLOR=#569cd6]Switch[/COLOR][COLOR=#d4d4d4] eDolly_Home          [/COLOR][COLOR=#ce9178]""[/COLOR][COLOR=#d4d4d4]<[/COLOR][COLOR=#d4d4d4]lawnmower[/COLOR][COLOR=#d4d4d4]>[/COLOR][COLOR=#d4d4d4] {mqtt[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]">[mqtt:landroid/set/stop:command:*:default]"[/COLOR][COLOR=#d4d4d4], autoupdate[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]"false"[/COLOR][COLOR=#d4d4d4]}[/COLOR]
    Sitemap
    Code:
    [COLOR=#569cd6]Text[/COLOR][COLOR=#d4d4d4] item[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4]eDolly_StatusDescription[/COLOR]
    [COLOR=#569cd6]Switch[/COLOR][COLOR=#d4d4d4] item[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4]eDolly_Start visibility[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4][eDolly_StatusDescription[/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#4ec9b0]Home[/COLOR][COLOR=#d4d4d4]] mappings[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]"Start"[/COLOR][COLOR=#d4d4d4]][/COLOR]
    [COLOR=#569cd6]Switch[/COLOR][COLOR=#d4d4d4] item[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4]eDolly_Home visibility[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4][eDolly_StatusDescription[/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#4ec9b0]Mowing[/COLOR][COLOR=#d4d4d4]] mappings[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]"Home"[/COLOR][COLOR=#d4d4d4]][/COLOR]
    Somit steht der Text von eDolly_StatusDescription immer über den Schaltern und die Schalter sind je nach Status sichtbar.

    Auch wenn die Buttons nebeneinander und jeweils entsprechend deaktiviert/grau schöner wäre, ist dies eine Darstellung die funktioniert.

    Frage: Kann ich den Text von eDolly_StatusDescription auch vor den Button als label benutzten? Dies habe ich auch nicht hinbekommen :-(

    Gruß,
    Jörg

    Kommentar


      #3
      Wenn Du sowieso die Visibility nutzt, kannst Du den beiden Switches unterschiedliche Label geben

      Kommentar


        #4
        Zitat von udo1toni Beitrag anzeigen
        Wenn Du sowieso die Visibility nutzt, kannst Du den beiden Switches unterschiedliche Label geben
        Hallo Udo,
        Ja, kann und habe ich

        Aber ich hätte lieber eine smartere Lösung á la

        Items
        Code:
        Switch Mower_Action        ""    <lawnmower>    {mqtt=">[mqtt:landroid/set/start:command:Start:ON], >[mqtt:landroid/set/stop:command:Stop:ON]", autoupdate="false"}
        Sitemap
        Code:
        Text item=Mower_StatusDescription visibility=[Mower_StatusDescription!=Home, Mower_StatusDescription!=Mowing]
        Switch item=Mower_Action visibility=[Mower_StatusDescription==Home] mappings=[Start="Start"]
        Switch item=Mower_Action visibility=[Mower_StatusDescription==Mowing] mappings=[Stop="Home"]
        Das will aber leider nicht :-(

        Kommentar


          #5
          Nein, ich meinte, Du kannst das Label ja ebenfalls in der Sitemap setzen:
          Code:
          Switch item=Mower_Action label="Standby" visibility=[Mower_StatusDescription==Home] mappings=[Start="Start"]
          Switch item=Mower_Action label="Mowing" visibility=[Mower_StatusDescription==Mowing] mappings=[Stop="Home"]
          Das Text Widget funktioniert so nicht, da in der Visibility nur ODER-Verknüpfungen möglich sind. Eine der beiden Bedingungen trifft immer zu, so dass das Text Widget immer sichtbar ist. Unsmarter Ausweg: Nutze ein Proxy Item, welches Du über eine Rule setzt, um das Text Widget einzublenden.
          Auch unterschiedliche Icons sind über die Visibility realisierbar.

          Kommentar

          Lädt...
          X