Kobold Staubsauger VR200

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • orli
    Lox Guru
    • 13.11.2016
    • 2554

    #16
    Ich schaue mal ob ich die kommenden Tage was im Wiki dazu verfassen kann, hab aktuell leider wenig Zeit. Soviel aber vorab: Grundsätzlich müsst ihr FHEM auf dem Loxberry am laufen haben und dann die Daten per UDP an Loxone senden:

    1. FHEM installieren
    2. Nach folgendem HowTo bin ich vorgegangen um die FHEM Daten an Loxone zu pushen: http://www.meintechblog.de/2016/07/5...-loxone-howto/
    3. FHEM Plugin installieren und konfigurieren: https://forum.fhem.de/index.php?topic=51713.0
    4. Virtuelle Befehle für den VR200 in Loxone erstellen und via Statusbaustein auslesen

    Grüße
    orli

    Kommentar

    • Gast

      #17
      Hallo Orli,
      vielen Dank erst einmal!
      Ich habe es bereits geschafft Daten per UDP an die Loxone zu senden. Das klappt auch jetzt sehr gut.
      Nach den Anleitungen wie du sie auch schon genannt hast stellt meine Basis her, aber leider nicht die speziellen Befehle für die VR200.
      Ich habe daher die 99_myutils.pm um folgendes erweitert.

      #VR200ToLoxone
      #device:
      #1 state

      sub VR200ToLoxone($)
      {
      my ($device) = @_;
      my $state=ReadingsVal("$device","state","-1");
      if ($state eq "Idle") {
      $state = "1";
      }
      if ($state eq "House Cleaning") {
      $state = "2";
      }

      UDP_Msg("192.168.178.77" , "7000" , "$device: $state");
      }

      und in der FHEM.cfg diese Zeile ergänzt:
      define VR200ToLoxone notify .*:state.* {VR200ToLoxone("$NAME")}

      Ich werde jetzt noch die anderen Statis abfragen und denen dann entsprechende Zahlen vergeben. Sobald ich alle Stati habe, werde ich euch es wissen lassen.

      Gruß Eren

      Kommentar

      • orli
        Lox Guru
        • 13.11.2016
        • 2554

        #18
        Hi,

        ich mache das etwas anders, hier meine 99_myUtils.pm:

        Code:
        # BOTVACToLoxone
        sub BOTVACToLoxone($)
        {
         my ($device) = @_;
         my $stateId=ReadingsVal("$device","stateId","-1");
         my $isDocked=ReadingsVal("$device","isDocked","-1");
         my $isCharging=ReadingsVal("$device","isCharging","-1");
         my $charge=ReadingsVal("$device","charge","-1");
         my $action=ReadingsVal("$device","action","-1");
         my $cleanMode=ReadingsVal("$device","cleanMode","-1");
        
         UDP_Msg("10.99.99.5" , "7000" , "$device: stateId: $stateId");
         UDP_Msg("10.99.99.5" , "7000" , "$device: isDocked: $isDocked");
         UDP_Msg("10.99.99.5" , "7000" , "$device: isCharging: $isCharging");
         UDP_Msg("10.99.99.5" , "7000" , "$device: Charging: $charge");
         UDP_Msg("10.99.99.5" , "7000" , "$device: Action: $action");
         UDP_Msg("10.99.99.5" , "7000" , "$device: cleanMode: $cleanMode");
        }
        Ich reiche die FHEM Werte quasi an Loxone durch und werte in Loxone aus, du scheinbar schon in FHEM:

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 2017-11-05_10-55-05.png
Ansichten: 718
Größe: 140,8 KB
ID: 125666


        Auswertung in Statusbausteinen:

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 2017-11-05_10-58-04.png
Ansichten: 737
Größe: 141,0 KB
ID: 125667

        Gruß
        orli
        Angehängte Dateien

        Kommentar


        • crasythom
          crasythom kommentierte
          Kommentar bearbeiten
          Super Sache! Danke !!!!!
          Ich habe es tatsächlich auch hinbekommen. Normalerweise schaue ich da nur neidisch zu was andere da hinbekommen :-)
          Jetzt wäre es natürlich noch cool, wenn man den Robby auch über Loxone starten kann. In FHEM schaffe ich das schon mit dem Befehl "Set Robby startCleaning Eco". Über einen Http habe ich das aber noch nicht geschafft. Ich habe FHEM auf dem Loxberry laufen (momentan ohne user und PW). Ich habe dann erstmal im Browser folgendes versucht:
          "http://loxberry:8083/fhem?cmd=set Robby startCleaning Eco"
          und
          "http://loxberry:8083/fhem&cmd=set Robby startCleaning Eco"

          Beides will leider nicht funktionieren.

          Hast du oder jemand anderes noch einen Tipp für mich?
      • windflyer
        Smart Home'r
        • 03.11.2017
        • 55

        #19
        hallo...
        ich bin leider nicht wirklich weiter gekommen... habe leider wenig erfahrung was programmieren betrifft... wäre toll eine anleitung "schritt für schritt " zu bekommen... wäre toll wenn ihr dafür zeit findet!
        besten dank!
        lg

        Kommentar

        • windflyer
          Smart Home'r
          • 03.11.2017
          • 55

          #20
          orli
          ist das deine gesamte 99_myUtils.pm datei?

          Kommentar


          • orli
            orli kommentierte
            Kommentar bearbeiten
            Nein, nur der VR200 Teil. Ich habe darin noch diverse andere Dinge die ich an Loxone sende, wie Lüftungsanlage, Gurtwickler, Kaffeemaschine ..
        • windflyer
          Smart Home'r
          • 03.11.2017
          • 55

          #21
          hm... wäre es möglich dass du die gesamten dateien hier postest... also ohne den anderen diversen dingen
          ich nehme an man muss dann das ganze noch irgendwie auf seinen vr200 anpassen, oder?
          sorry für die blöden fragen, beschäftige mich das erste mal mit programmierung und fhem!
          lg

          Kommentar

          • Gast

            #22
            windflyer ich versuche mal die Tage eine Anleitung zu verfassen.
            orli
            mit stateid sieht man nicht den genauen Stati.
            Zb. House cleaning = 2 und auch Docking = 2

            wenn man die State Name zuordnet hat man einen besseren Überblick was der Robi grad macht.

            Folgende Stati habe ich bisher notiert:

            Idle
            House cleaning
            Docking
            Picked Up!
            Paused: House Cleaning

            Kommentar

            • orli
              Lox Guru
              • 13.11.2016
              • 2554

              #23
              Zitat von erenaygun
              windflyer ich versuche mal die Tage eine Anleitung zu verfassen.
              orli
              mit stateid sieht man nicht den genauen Stati.
              Korrekt, daher werte ich am Statusbaustein auch mehrere Eingänge aus (sind aber lang noch nicht alle Stati, nur die wichtigsten die bei mir immer wieder kommen):

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 2017-11-05_12-11-36.png
Ansichten: 709
Größe: 187,6 KB
ID: 125690

              Kommentar

              • Gast

                #24
                Hallo zusammen,

                hier eine Schritt für Schritt Anleitung:
                wie schon Orli bereits geschrieben hat:
                1. Loxberry aufsetzen und mit Loxone verbinden, wie das geht erfahrt ihr hier
                  PHP-Code:
                  http://www.loxwiki.eu/display/LOXBERRY/Installation 
                  
                2. FHEM Plugin downloaden und über Loxberry installieren
                  PHP-Code:
                  http://www.loxberry.de/plugin/fhem/ 
                  

                Wenn ihr das alles habt und ihr könnt auf die FHEM zugreifen, geht's so weiter:

                - Edit files anklicken
                - fhem.cfg anklicken, folgenden Inhalt einfügen und speichern

                Code:
                define VR200ToLoxone notify .*:state.*|.*:charge.*|.*:error.*|.*:isCharging.*|.*:isDocked.*|.*:action.* {VR200ToLoxone("$NAME")}

                Danach nehmen wir uns noch die 99_myutils.pm vor

                - Edit files anklicken
                - und mit folgendem Inhalt einfügen

                !!!!!!!!!!!!!!ACHTUNG!!!!!!
                Es ist nur der Ausschnitt um die Daten zur Loxone zu senden.
                BITTE PASST EURE IP-ADRESSE AN

                Code:
                #VR200ToLoxone
                #device:
                #1 state
                #2 error
                
                sub VR200ToLoxone($)
                {
                 my ($device) = @_;
                 my $state=ReadingsVal("$device","state","-1");
                 if ($state eq "Idle") {
                 $state = "1";
                 }
                 if ($state eq "House Cleaning") {
                 $state = "2";
                 }
                 if ($state eq "Docking") {
                 $state = "4";
                 }
                 if ($state eq "Picked Up!") {
                 $state = "8";
                 }
                 if ($state eq "Paused: House Cleaning") {
                 $state = "16";
                 }
                UDP_Msg("192.168.178.77" , "7000" , "$device: $state");
                
                 my $error=ReadingsVal("$device","error","-1");
                 if ($error eq "ui_alert_invalid") {
                 $error = "1";
                 }
                 if ($error eq "ui_alert_dust_bin_full") {
                 $error = "2";
                }
                 if ($error eq "ui_error_dust_bin_missing") {
                 $error = "4";
                }
                 if ($error eq "ui_error_bumper_stuck") {
                 $error = "8";
                }
                 if ($error eq "ui_error_navigation_nomotioncommands") {
                 $error = "16";
                }
                 if ($error eq "ui_alert_busy_charging") {
                 $error = "32";
                }
                 if ($error eq "ui_error_picked_up") {
                 $error = "64";
                }
                
                
                 my $isDocked=ReadingsVal("$device","isDocked","-1");
                if ($isDocked eq "true") {
                 $isDocked = "1";
                 }
                 if ($isDocked eq "false") {
                 $isDocked = "0";
                }
                
                 my $isCharging=ReadingsVal("$device","isCharging","-1");
                if ($isCharging eq "true") {
                 $isCharging = "1";
                 }
                 if ($isCharging eq "false") {
                 $isCharging = "0";
                }
                 my $charge=ReadingsVal("$device","charge","-1");
                 my $action=ReadingsVal("$device","action","-1");
                
                
                 UDP_Msg("192.168.178.77" , "7000" , "$device: error: $error");
                 UDP_Msg("192.168.178.77" , "7000" , "$device: isDocked: $isDocked");
                 UDP_Msg("192.168.178.77" , "7000" , "$device: isCharging: $isCharging");
                 UDP_Msg("192.168.178.77" , "7000" , "$device: Charging: $charge");
                 UDP_Msg("192.168.178.77" , "7000" , "$device: Action: $action");
                 UDP_Msg("192.168.178.77" , "7000" , "$device: $state");
                }


                orli, vielen Dank ohne deinen Hinweis wäre ich wohl nicht drauf gekommen, die Signale an die Loxone zu leiten.
                FHEM neustarten
                shutdown restart

                Jetzt müssten in der LoxConfig die UDPMessage ankommen. Entsprechend nach Wunschbaustein verbinden fertig.
                Ich habe eine Error Benachrichtigung eingebaut. Die Fehlercodes der VR200 werden bereits in der FHEM ausgewertet und an die Loxone übergeben. Über einen Binärdekoder werden dann diese per Benachrichtigungsbaustein euch mitgeteilt.
                Den aktuellen Status der VR200 fange ich nun auch wie Orli mit einem Statusbaustein ab. Vielen Dank an Orli.

                Befehlserkennung Stati:
                VR200: \v

                Befehlserkennung error, action, usw.
                VR200: error: \v



                Viel Spaß damit

                Kommentar

                • windflyer
                  Smart Home'r
                  • 03.11.2017
                  • 55

                  #25
                  @erenaygun Super, Besten Dank für die Anleitung...
                  ich werde diese gleich probieren und in den nächsten Tagen testen!

                  Du hast in deinem letzten Post scheinbar noch zwei Bilder angehängt... leider sind bei mir nur 2 Fragezeichen sichtbar!
                  Vielleicht eine sehr blöde Frage, aber wie kommt man zu den Befehlen mit denen nun Loxone den VR200 losfahren läßt bzw. pausiert, zur Basis schickt , usw...

                  Danke nochmals für deine Mühe
                  LG

                  Kommentar

                  • orli
                    Lox Guru
                    • 13.11.2016
                    • 2554

                    #26
                    crasythom

                    1. FHEM so konfigurieren, dass der Miniserver ihn auch bedienen darf. In fhem gibt es seit einigen Versionen den Token, der dir wohl erstmal das Genick bricht (https://wiki.fhem.de/wiki/CsrfToken-HowTo). Ich hab bei mir die Token Authentifizierung für meinen Loxberry deaktiviert, da eh alles separiert in einem eigenen VLAN arbeitet. Ich bin mir aber sehr wohl bewusst, dass dies ein Risiko sein kann! Dazu hab ich in die Config folgendes eingebaut:

                    Code:
                    # TokenAbfrage deaktivieren fuer Loxberry, Loxmgmt
                    define WEBapi FHEMWEB 8088 global
                    attr WEBapi allowfrom 10.99.99.5|10.99.99.10
                    attr WEBapi csrfToken none
                    Damit kann ich unter Port 8088 dann fhem ohne Token Authentifizierung öffnen und meine HTTP Befehle absetzen.

                    2. virtuellen Ausgang anlegen:

                    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: 2017-11-11_09-07-43.png Ansichten: 1 Größe: 95,2 KB ID: 126906

                    3. Befehle an FHEM senden, in diesem Fall Hausreinigung starten:

                    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: 2017-11-11_09-10-15.png Ansichten: 1 Größe: 107,7 KB ID: 126907

                    Mehr ist's eigentlich nicht und schon legt er los

                    Kommentar

                    • crasythom
                      LoxBus Spammer
                      • 02.10.2015
                      • 299

                      #27
                      Hallo Orli,

                      ganz mag es noch nicht klappen. das WebAPI ist glaube ich noch nicht erreichbar. Siehst du den Fehler?
                      Bei dem Attribut allowfrom gibt man die Start und die End-IP-Adresse mit Pipe-Zeichen getrennt ein oder? Werde das, sobald es funktioniert, noch weiter eingrenzen.

                      Kommentar

                      • orli
                        Lox Guru
                        • 13.11.2016
                        • 2554

                        #28
                        Kann der Miniserver http://loxberry auflösen? Versuch mal die IP des Loxberries in Loxone. Allowfrom definiert 1 IP Adresse, mit Pipe getrennt eine zweite. Du hast also die .1 und die .200 freigegeben aktuell :-) - vermutlich ist das dein Fehler.

                        Kommentar


                        • crasythom
                          crasythom kommentierte
                          Kommentar bearbeiten
                          Super! Jetzt geht es. Danke. Die IP muss aufgelöst eingegeben werden. Hätte ich auch drauf kommen können. Schließlich musste ich das bei meinen Sonos Lautsprechern über den Loxberry auch schon so machen.
                          Danke!!!!!
                      • windflyer
                        Smart Home'r
                        • 03.11.2017
                        • 55

                        #29
                        Hallo!
                        Die letzte Zeit habe ich mich intensiv damit beschäftigt meinen VR200 mit Hilfe von FHEM und eurer Anleitung an meinen Miniserver anzubindnen.
                        Leider ohne Erfolg!
                        Nun möchte ich meinen kompletten ‚Weg’ posten. Hoffentlich findet ihr den Fehler.
                        Ich bin nach der Beschreibung von Gast vorgegangen.

                        1: Loxberry aufsetzten und mit dem Miniserver vebinden
                        2: auf dem Loxberry das FHEM Plugin installieren
                        3: fhem.cfg file angepasst... so sieht nun meine Datei aus:

                        Code:
                        attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
                        attr global autoload_undefined_devices 1
                        attr global logfile /opt/loxberry/log/plugins/fhem/fhem.log
                        attr global modpath .
                        attr global motd SecurityCheck:\
                        \
                        WEB,WEBphone,WEBtablet has no basicAuth attribute.\
                        telnetPort has no password/globalpassword attribute.\
                        \
                        Restart FHEM for a new check if the problem is fixed,\
                        or set the global attribute motd to none to supress this message.\
                        
                        attr global statefile /opt/loxberry/log/plugins/fhem/fhem.save
                        attr global updateInBackground 1
                        attr global verbose 3
                        
                        define telnetPort telnet 7072 global
                        
                        define WEB FHEMWEB 8083 global
                        attr WEB editConfig 1
                        
                        define WEBphone FHEMWEB 8084 global
                        attr WEBphone stylesheetPrefix smallscreen
                        
                        define WEBtablet FHEMWEB 8085 global
                        attr WEBtablet stylesheetPrefix touchpad
                        
                        # Fake FileLog entry, to access the fhem log from FHEMWEB
                        define Logfile FileLog /opt/loxberry/log/plugins/fhem/fhem.log fakelog
                        
                        define autocreate autocreate
                        attr autocreate filelog /opt/loxberry/log/plugins/fhem/%NAME.log
                        
                        define eventTypes eventTypes /opt/loxberry/log/plugins/fhem/eventTypes.txt
                        
                        # Disable this to avoid looking for new USB devices on startup
                        define initialUsbCheck notify global:INITIALIZED usb create
                        
                        define VR200ToLoxone notify .*:state.*|.*:charge.*|.*:error.*|.*:isCharging.*|.*:isDocked.*|.*:action.* {VR200ToLoxone("$NAME")}
                        4: weiter gings mit der 99_myutils.pm ... diese sieht nun so aus:

                        Code:
                        ##############################################
                        # $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
                        #
                        # Save this file as 99_myUtils.pm, and create your own functions in the new
                        # file. They are then available in every Perl expression.
                        
                        package main;
                        
                        use strict;
                        use warnings;
                        use POSIX;
                        
                        sub
                        myUtils_Initialize($$)
                        {
                          my ($hash) = @_;
                        }
                        
                        # Enter you functions below _this_ line.
                        
                        #VR200ToLoxone
                        #device:
                        #1 state
                        #2 error
                        
                        sub VR200ToLoxone($)
                        {
                         my ($device) = @_;
                         my $state=ReadingsVal("$device","state","-1");
                         if ($state eq "Idle") {
                         $state = "1";
                         }
                         if ($state eq "House Cleaning") {
                         $state = "2";
                         }
                         if ($state eq "Docking") {
                         $state = "4";
                         }
                         if ($state eq "Picked Up!") {
                         $state = "8";
                         }
                         if ($state eq "Paused: House Cleaning") {
                         $state = "16";
                         }
                        UDP_Msg("192.168.0.77" , "7100" , "$device: $state");
                        
                         my $error=ReadingsVal("$device","error","-1");
                         if ($error eq "ui_alert_invalid") {
                         $error = "1";
                         }
                         if ($error eq "ui_alert_dust_bin_full") {
                         $error = "2";
                        }
                         if ($error eq "ui_error_dust_bin_missing") {
                         $error = "4";
                        }
                         if ($error eq "ui_error_bumper_stuck") {
                         $error = "8";
                        }
                         if ($error eq "ui_error_navigation_nomotioncommands") {
                         $error = "16";
                        }
                         if ($error eq "ui_alert_busy_charging") {
                         $error = "32";
                        }
                         if ($error eq "ui_error_picked_up") {
                         $error = "64";
                        }
                        
                        
                         my $isDocked=ReadingsVal("$device","isDocked","-1");
                        if ($isDocked eq "true") {
                         $isDocked = "1";
                         }
                         if ($isDocked eq "false") {
                         $isDocked = "0";
                        }
                        
                         my $isCharging=ReadingsVal("$device","isCharging","-1");
                        if ($isCharging eq "true") {
                         $isCharging = "1";
                         }
                         if ($isCharging eq "false") {
                         $isCharging = "0";
                        }
                         my $charge=ReadingsVal("$device","charge","-1");
                         my $action=ReadingsVal("$device","action","-1");
                        
                        
                         UDP_Msg("192.168.0.77" , "7100" , "$device: error: $error");
                         UDP_Msg("192.168.0.77" , "7100" , "$device: isDocked: $isDocked");
                         UDP_Msg("192.168.0.77" , "7100" , "$device: isCharging: $isCharging");
                         UDP_Msg("192.168.0.77" , "7100" , "$device: Charging: $charge");
                         UDP_Msg("192.168.0.77" , "7100" , "$device: Action: $action");
                         UDP_Msg("192.168.0.77" , "7100" , "$device: $state");
                        }
                        1;
                        5: Befehlserkennung

                        VR200 Status VR200: \v
                        VR200 charging VR200: charge: \v
                        VR200 isCharging VR200: isCharging: \v
                        VR200 isDocked VR200: isDocked: \v
                        VR200 Error VR200: error: \v
                        VR200 Action VR200: action: \v


                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 1.PNG
Ansichten: 769
Größe: 14,2 KB
ID: 132314Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 2.PNG
Ansichten: 724
Größe: 13,2 KB
ID: 132315Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 3.PNG
Ansichten: 735
Größe: 4,7 KB
ID: 132316


                        Habe ich eine Datei vergessen IN FHEM anzulegen oder zu ändern?
                        Leider habe ich keine Ahnung wieso im Miniserver nichts ankommt.

                        Über Hilfe bin ich sehr dankbar!
                        Liebe Grüße

                        Kommentar

                        • merl0t
                          Dumb Home'r
                          • 21.07.2017
                          • 18

                          #30
                          Ich habe das ähnliche Problem wie windflyer .

                          Weder Daten vom VR200 werden im MS angezeigt, noch kann ich diesen über UDP steuern.

                          Woher weiß FHEM bzw. LB die IP vom VR200?

                          Kommentar

                          Lädt...