Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Adapter: Worx Landroid v2.x.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Adapter: Worx Landroid v2.x.x

Geplant Angeheftet Gesperrt Verschoben Entwicklung
1.2k Beiträge 121 Kommentatoren 459.6k Aufrufe 64 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Jens MeyerJ Jens Meyer

    @hsteinme
    Hallo, da hab ich gleich mal ne Frage… wie löse ich so ein Befehl aus? Unter send command die Zahl eingeben? Von 1-7 ?
    Also 3 für Home … oder kann ich auch Home schreiben

    hsteinmeH Offline
    hsteinmeH Offline
    hsteinme
    schrieb am zuletzt editiert von
    #437

    @jens-meyer Oh Mann! Warum probierst Du es nicht einfach aus? Dein Mäher wird Dir dabei schon nicht um die Ohren fliegen :blush:

    • Test im Objektbaum
      • auf Bleistift rechts neben Eingabefeld klicken und Kommandotext eingeben und SET-Taste drücken:
        • nichts passiert
      • auf Bleistift rechts neben Eingabefeld klicken und Kommandonummer eingeben und SET-Taste drücken:
        • das Gewünschte passiert
      • in Eingabefeld klicken, eine geschlossene Combobox wird angezeigt, Combobox öffnen, gewünschtes Kommando und anschließend Haken rechts daneben anklicken:
        • das Gewünschte passiert
          .
    • Test in einem Javascript mit setState('worx.0.9999.mower.sendCommand', XXXX);
      • XXXX ist ein String und enthält einen Kommandotext:
        • im Log erscheint eine Warnung wegen der Verwendung eines falschen Datentyps, ansonsten passiert aber nichts
      • XXXX ist ein numerisches Feld und enthält eine Kommandonummer:
        • das Gewünschte passiert
    Jens MeyerJ 1 Antwort Letzte Antwort
    0
    • hsteinmeH hsteinme

      @jens-meyer Oh Mann! Warum probierst Du es nicht einfach aus? Dein Mäher wird Dir dabei schon nicht um die Ohren fliegen :blush:

      • Test im Objektbaum
        • auf Bleistift rechts neben Eingabefeld klicken und Kommandotext eingeben und SET-Taste drücken:
          • nichts passiert
        • auf Bleistift rechts neben Eingabefeld klicken und Kommandonummer eingeben und SET-Taste drücken:
          • das Gewünschte passiert
        • in Eingabefeld klicken, eine geschlossene Combobox wird angezeigt, Combobox öffnen, gewünschtes Kommando und anschließend Haken rechts daneben anklicken:
          • das Gewünschte passiert
            .
      • Test in einem Javascript mit setState('worx.0.9999.mower.sendCommand', XXXX);
        • XXXX ist ein String und enthält einen Kommandotext:
          • im Log erscheint eine Warnung wegen der Verwendung eines falschen Datentyps, ansonsten passiert aber nichts
        • XXXX ist ein numerisches Feld und enthält eine Kommandonummer:
          • das Gewünschte passiert
      Jens MeyerJ Offline
      Jens MeyerJ Offline
      Jens Meyer
      schrieb am zuletzt editiert von
      #438

      @hsteinme
      Danke

      nik82N 1 Antwort Letzte Antwort
      0
      • Jens MeyerJ Jens Meyer

        @hsteinme
        Danke

        nik82N Offline
        nik82N Offline
        nik82
        Most Active
        schrieb am zuletzt editiert von nik82
        #439

        Hallo,
        kann man eigentlich über den Iobroker den Punkt "totalTime" resetten oder geht das nur via App?

        b4480191-5dcf-46ee-a34d-9db20d007e5d-image.png

        --- EDIT ----
        Bitte vergessen, war quatsch, die Time lässt sich ja auch nicht in der App resetten...

        1 Antwort Letzte Antwort
        0
        • hg6806H Offline
          hg6806H Offline
          hg6806
          Most Active
          schrieb am zuletzt editiert von
          #440

          Den Landroid würde ich gerne manuell laden lassen, sprich, wenn die Photovoltaik Anlage gerade ins Netz einspeist, wie z.B. morgens, wenn der Rasen noch feucht ist.
          Ich habe versucht über einen Sonoff Schalter die Ladestation komplett abzuschalten, das Problem ist, dass dann auch der Landroid sich ganz abschaltet.

          Geht das evtl. über einen Befehl? Wenn nicht werde ich das mal bei Worx anfragen.
          Jede Ladung ist zwar nur ca. 0,1kWh, das summiert sich aber auch auf.

          M hsteinmeH 3 Antworten Letzte Antwort
          1
          • hg6806H hg6806

            Den Landroid würde ich gerne manuell laden lassen, sprich, wenn die Photovoltaik Anlage gerade ins Netz einspeist, wie z.B. morgens, wenn der Rasen noch feucht ist.
            Ich habe versucht über einen Sonoff Schalter die Ladestation komplett abzuschalten, das Problem ist, dass dann auch der Landroid sich ganz abschaltet.

            Geht das evtl. über einen Befehl? Wenn nicht werde ich das mal bei Worx anfragen.
            Jede Ladung ist zwar nur ca. 0,1kWh, das summiert sich aber auch auf.

            M Offline
            M Offline
            MartyBr
            schrieb am zuletzt editiert von
            #441

            @hg6806
            Das habe ich auch noch nicht geschafft. Bin an der Antwort von Worx interessiert.

            Gruß
            Martin


            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
            Raspeberry mit USB Leseköpfen für Smartmeter
            Homematic und Homematic IP

            1 Antwort Letzte Antwort
            0
            • hg6806H Offline
              hg6806H Offline
              hg6806
              Most Active
              schrieb am zuletzt editiert von
              #442

              ...habe es mal angefragt und werde berichten.

              1 Antwort Letzte Antwort
              0
              • hg6806H hg6806

                Den Landroid würde ich gerne manuell laden lassen, sprich, wenn die Photovoltaik Anlage gerade ins Netz einspeist, wie z.B. morgens, wenn der Rasen noch feucht ist.
                Ich habe versucht über einen Sonoff Schalter die Ladestation komplett abzuschalten, das Problem ist, dass dann auch der Landroid sich ganz abschaltet.

                Geht das evtl. über einen Befehl? Wenn nicht werde ich das mal bei Worx anfragen.
                Jede Ladung ist zwar nur ca. 0,1kWh, das summiert sich aber auch auf.

                hsteinmeH Offline
                hsteinmeH Offline
                hsteinme
                schrieb am zuletzt editiert von
                #443

                @hg6806 sagte in Adapter: Worx Landroid:

                Geht das evtl. über einen Befehl?

                Das Ladeverhalten des Mähers lässt sich weder über ein Web-Kommando noch über einen Dialog am Gerät beeinflussen.

                1 Antwort Letzte Antwort
                0
                • hsteinmeH hsteinme

                  @hg6806 Markiere die sendCommand-Zeile im Objektbaum des Adapters, klicke ganz rechts auf das Bleistift-Symbol, aktiviere den Reiter RAW (EXPERTS ONLY) und schaue, was unter "states" steht:

                      "states": {
                        "1": "Start",
                        "2": "Stop",
                        "3": "Home",
                        "4": "Start Zone Taining",
                        "5": "Lock",
                        "6": "Unlock",
                        "7": "Restart Robot",
                        "8": "pause when follow wire",
                        "9": "safe homing"
                      }
                  
                  H Offline
                  H Offline
                  Habedere
                  schrieb am zuletzt editiert von
                  #444

                  @hsteinme sagte in Adapter: Worx Landroid:

                  @hg6806 Markiere die sendCommand-Zeile im Objektbaum des Adapters, klicke ganz rechts auf das Bleistift-Symbol, aktiviere den Reiter RAW (EXPERTS ONLY) und schaue, was unter "states" steht:

                      "states": {
                        "1": "Start",
                        "2": "Stop",
                        "3": "Home",
                        "4": "Start Zone Taining",
                        "5": "Lock",
                        "6": "Unlock",
                        "7": "Restart Robot",
                        "8": "pause when follow wire",
                        "9": "safe homing"
                      }
                  

                  Hallo,
                  Frage eines Noobs - kann ich den Robi aus einem "festgefahren Error" zurücksetzen?
                  Der M500 verirrt sich öfter im neuem Klettergerüst - wenn ich jetzt dann zwei Wochen im Urlaub bin möchte ich den da gerne resetten...

                  Mfg

                  hsteinmeH 1 Antwort Letzte Antwort
                  0
                  • H Habedere

                    @hsteinme sagte in Adapter: Worx Landroid:

                    @hg6806 Markiere die sendCommand-Zeile im Objektbaum des Adapters, klicke ganz rechts auf das Bleistift-Symbol, aktiviere den Reiter RAW (EXPERTS ONLY) und schaue, was unter "states" steht:

                        "states": {
                          "1": "Start",
                          "2": "Stop",
                          "3": "Home",
                          "4": "Start Zone Taining",
                          "5": "Lock",
                          "6": "Unlock",
                          "7": "Restart Robot",
                          "8": "pause when follow wire",
                          "9": "safe homing"
                        }
                    

                    Hallo,
                    Frage eines Noobs - kann ich den Robi aus einem "festgefahren Error" zurücksetzen?
                    Der M500 verirrt sich öfter im neuem Klettergerüst - wenn ich jetzt dann zwei Wochen im Urlaub bin möchte ich den da gerne resetten...

                    Mfg

                    hsteinmeH Offline
                    hsteinmeH Offline
                    hsteinme
                    schrieb am zuletzt editiert von
                    #445

                    @habedere sagte in Adapter: Worx Landroid:

                    kann ich den Robi aus einem "festgefahren Error" zurücksetzen?

                    Da hast Du keine Chance. In einem Fehlerfall musst Du am Mäher selbst zunächst mit der START-Taste den Fehler quittieren und dann mit START und OK bzw. mit HOME und OK den Mäher wieder in Bewegung setzen.

                    Behördliche Sicherheitsvorschriften werden als Grund für diese Vorgehensweise genannt.

                    1 Antwort Letzte Antwort
                    0
                    • S Semmy

                      @hsteinme sagte in Adapter: Worx Landroid:

                      @hsteinme sagte in Adapter: Worx Landroid:

                      Diese Logik kannst Du in einem kleinen Skript realisieren

                      So zum Beispiel:

                      'use strict';
                      const startSequenceKey = "worx.0.999...999.areas.startSequence";
                      var Arr = JSON.parse(getState(startSequenceKey).val);
                      Arr.unshift(Arr.pop());
                      setState(startSequenceKey, JSON.stringify(Arr));
                      
                      • In Zeile 3 wird der startSequence-String ausgelesen und in eine eindimensionale Tabelle konvertiert.
                      • Zeile 4: Arr.pop() liefert den rechten Wert der Tabelle und entfernt ihn dort, unshift stellt ihn an den Anfang der Tabelle.
                      • Zeile 5 konvertiert die Tabelle zurück in einen String der Art [x, ...,x] und stellt diesen wieder in startSequence ab.

                      Hallo und vielen Dank, funktioniert tadellos.

                      Viele Grüße
                      Semmy

                      S Offline
                      S Offline
                      Semmy
                      schrieb am zuletzt editiert von
                      #446

                      @semmy sagte in Adapter: Worx Landroid:

                      'use strict'; const startSequenceKey = "worx.0.999...999.areas.startSequence"; var Arr = JSON.parse(getState(startSequenceKey).val); Arr.unshift(Arr.pop()); setState(startSequenceKey, JSON.stringify(Arr));

                      Hallo
                      Ich habe Firmware 3.25 installiert und jetzt funktioniert das Script nicht mehr, kommt immer folgende Fehlermeldung:

                      javascript.0 (9961) script.js.Mähroboter.Sequenz_verschieben: SyntaxError: Unexpected token , in JSON at position 1

                      Was kann das jetzt wieder sein?

                      Viele Grüße
                      Semmy

                      1 Antwort Letzte Antwort
                      0
                      • hsteinmeH hsteinme

                        @hsteinme sagte in Adapter: Worx Landroid:

                        Diese Logik kannst Du in einem kleinen Skript realisieren

                        So zum Beispiel:

                        'use strict';
                        const startSequenceKey = "worx.0.999...999.areas.startSequence";
                        var Arr = JSON.parse(getState(startSequenceKey).val);
                        Arr.unshift(Arr.pop());
                        setState(startSequenceKey, JSON.stringify(Arr));
                        
                        • In Zeile 3 wird der startSequence-String ausgelesen und in eine eindimensionale Tabelle konvertiert.
                        • Zeile 4: Arr.pop() liefert den rechten Wert der Tabelle und entfernt ihn dort, unshift stellt ihn an den Anfang der Tabelle.
                        • Zeile 5 konvertiert die Tabelle zurück in einen String der Art [x, ...,x] und stellt diesen wieder in startSequence ab.
                        S Offline
                        S Offline
                        Semmy
                        schrieb am zuletzt editiert von
                        #447

                        @hsteinme sagte in Adapter: Worx Landroid:

                        @hsteinme sagte in Adapter: Worx Landroid:

                        Diese Logik kannst Du in einem kleinen Skript realisieren

                        So zum Beispiel:

                        'use strict';
                        const startSequenceKey = "worx.0.999...999.areas.startSequence";
                        var Arr = JSON.parse(getState(startSequenceKey).val);
                        Arr.unshift(Arr.pop());
                        setState(startSequenceKey, JSON.stringify(Arr));
                        
                        • In Zeile 3 wird der startSequence-String ausgelesen und in eine eindimensionale Tabelle konvertiert.
                        • Zeile 4: Arr.pop() liefert den rechten Wert der Tabelle und entfernt ihn dort, unshift stellt ihn an den Anfang der Tabelle.
                        • Zeile 5 konvertiert die Tabelle zurück in einen String der Art [x, ...,x] und stellt diesen wieder in startSequence ab.

                        Hallo
                        Ich habe Firmware 3.25 installiert und jetzt funktioniert das Script nicht mehr, kommt immer folgende Fehlermeldung:

                        javascript.0 (9961) script.js.Mähroboter.Sequenz_verschieben: SyntaxError: Unexpected token , in JSON at position 1

                        Was kann das jetzt wieder sein?

                        Viele Grüße
                        Semmy

                        hsteinmeH 1 Antwort Letzte Antwort
                        0
                        • S Semmy

                          @hsteinme sagte in Adapter: Worx Landroid:

                          @hsteinme sagte in Adapter: Worx Landroid:

                          Diese Logik kannst Du in einem kleinen Skript realisieren

                          So zum Beispiel:

                          'use strict';
                          const startSequenceKey = "worx.0.999...999.areas.startSequence";
                          var Arr = JSON.parse(getState(startSequenceKey).val);
                          Arr.unshift(Arr.pop());
                          setState(startSequenceKey, JSON.stringify(Arr));
                          
                          • In Zeile 3 wird der startSequence-String ausgelesen und in eine eindimensionale Tabelle konvertiert.
                          • Zeile 4: Arr.pop() liefert den rechten Wert der Tabelle und entfernt ihn dort, unshift stellt ihn an den Anfang der Tabelle.
                          • Zeile 5 konvertiert die Tabelle zurück in einen String der Art [x, ...,x] und stellt diesen wieder in startSequence ab.

                          Hallo
                          Ich habe Firmware 3.25 installiert und jetzt funktioniert das Script nicht mehr, kommt immer folgende Fehlermeldung:

                          javascript.0 (9961) script.js.Mähroboter.Sequenz_verschieben: SyntaxError: Unexpected token , in JSON at position 1

                          Was kann das jetzt wieder sein?

                          Viele Grüße
                          Semmy

                          hsteinmeH Offline
                          hsteinmeH Offline
                          hsteinme
                          schrieb am zuletzt editiert von
                          #448

                          @semmy : Welcher Wert steht denn vor dem Skriptlauf bei Dir in worx.0.999...999.areas.startSequence?

                          S 1 Antwort Letzte Antwort
                          0
                          • hsteinmeH hsteinme

                            @semmy : Welcher Wert steht denn vor dem Skriptlauf bei Dir in worx.0.999...999.areas.startSequence?

                            S Offline
                            S Offline
                            Semmy
                            schrieb am zuletzt editiert von
                            #449

                            @hsteinme sagte in Adapter: Worx Landroid:

                            @semmy : Welcher Wert steht denn vor dem Skriptlauf bei Dir in worx.0.999...999.areas.startSequence?

                            Das steht davor:
                            const startSequenceKey = "worx.0.

                            hsteinmeH 1 Antwort Letzte Antwort
                            0
                            • S Semmy

                              @hsteinme sagte in Adapter: Worx Landroid:

                              @semmy : Welcher Wert steht denn vor dem Skriptlauf bei Dir in worx.0.999...999.areas.startSequence?

                              Das steht davor:
                              const startSequenceKey = "worx.0.

                              hsteinmeH Offline
                              hsteinmeH Offline
                              hsteinme
                              schrieb am zuletzt editiert von
                              #450

                              @semmy Missverständnis, 2. Versuch: Bevor Du das Skript startest, gehe bitte in den Objekte-Reiter zu dem Objekt worx.0.999...999.areas.startSequence und gib hier dessen Wert an.

                              S 1 Antwort Letzte Antwort
                              0
                              • hsteinmeH hsteinme

                                @semmy Missverständnis, 2. Versuch: Bevor Du das Skript startest, gehe bitte in den Objekte-Reiter zu dem Objekt worx.0.999...999.areas.startSequence und gib hier dessen Wert an.

                                S Offline
                                S Offline
                                Semmy
                                schrieb am zuletzt editiert von
                                #451

                                @hsteinme Hier steht das: [0,1,2,0,1,2,0,0,1,2]
                                Hast du das gemeint?

                                hsteinmeH 1 Antwort Letzte Antwort
                                0
                                • S Semmy

                                  @hsteinme Hier steht das: [0,1,2,0,1,2,0,0,1,2]
                                  Hast du das gemeint?

                                  hsteinmeH Offline
                                  hsteinmeH Offline
                                  hsteinme
                                  schrieb am zuletzt editiert von
                                  #452

                                  @semmy Ja. Das sieht aber sauber aus.

                                  Du hast oben nur meine Version des Skriptes zitiert. Für die Fehlersuche wäre es aber nötig, Dein Skript hier vollständig zu posten (nach Maskierung der Seriennummer).

                                  S 2 Antworten Letzte Antwort
                                  0
                                  • hsteinmeH hsteinme

                                    @semmy Ja. Das sieht aber sauber aus.

                                    Du hast oben nur meine Version des Skriptes zitiert. Für die Fehlersuche wäre es aber nötig, Dein Skript hier vollständig zu posten (nach Maskierung der Seriennummer).

                                    S Offline
                                    S Offline
                                    Semmy
                                    schrieb am zuletzt editiert von Semmy
                                    #453

                                    @hsteinme So sieht es aus:
                                    'use strict';
                                    const startSequenceKey = "worx.0.99999.areas.startSequence";
                                    var Arr = JSON.parse(getState(startSequenceKey).val);
                                    Arr.unshift(Arr.pop());
                                    setState(startSequenceKey, JSON.stringify(Arr));

                                    hsteinmeH 1 Antwort Letzte Antwort
                                    0
                                    • hsteinmeH hsteinme

                                      @semmy Ja. Das sieht aber sauber aus.

                                      Du hast oben nur meine Version des Skriptes zitiert. Für die Fehlersuche wäre es aber nötig, Dein Skript hier vollständig zu posten (nach Maskierung der Seriennummer).

                                      S Offline
                                      S Offline
                                      Semmy
                                      schrieb am zuletzt editiert von
                                      #454

                                      @hsteinme Hallo
                                      Hast du schon einen Fehler entdeckt?

                                      Viele Grüße
                                      Semmy

                                      C 1 Antwort Letzte Antwort
                                      0
                                      • S Semmy

                                        @hsteinme Hallo
                                        Hast du schon einen Fehler entdeckt?

                                        Viele Grüße
                                        Semmy

                                        C Offline
                                        C Offline
                                        Conector777
                                        schrieb am zuletzt editiert von
                                        #455

                                        Das sind doch die Start Zonen oder ?

                                        Ich kämpfe auch gerade damit rum ... da ich diese zur Zeit Steuerung verwenden will.

                                        .areas.actualAreaIndicator sagt dir wo er beim zählen ist und .areas.startSequence zeigt an wo er wann starten soll.

                                        Ich würde gerne die Sequence auslesen abhängig vom Indicator auslesen und dann sagen wenn er in Zone 0 startet dann bitte die Arbeitszeit auf 30 min legen. Da die fläche so klein ist.

                                        Kann mir einer sagen wie ich die sequenz [0,2,0,2,2,2,2,2,2,2] in blockly abhängig von Indicator 6 auslese damit ich eine Gleichung erstellen kann ?

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Semmy

                                          @hsteinme So sieht es aus:
                                          'use strict';
                                          const startSequenceKey = "worx.0.99999.areas.startSequence";
                                          var Arr = JSON.parse(getState(startSequenceKey).val);
                                          Arr.unshift(Arr.pop());
                                          setState(startSequenceKey, JSON.stringify(Arr));

                                          hsteinmeH Offline
                                          hsteinmeH Offline
                                          hsteinme
                                          schrieb am zuletzt editiert von
                                          #456

                                          @semmy sagte in Adapter: Worx Landroid:

                                          So sieht es aus:

                                          Das ist zu 100% mein Skript. Einen Übertragungsfehler können wir also ausschließen. Bitte lass mal testweise folgendes Skript laufen:

                                          'use strict';
                                          const startSequenceKey = "worx.999...999.areas.startSequence";
                                          console.log('startSequence vorher: ' + getState(startSequenceKey).val);
                                          var Arr = JSON.parse(getState(startSequenceKey).val);
                                          console.log('Arr[0] vorher: ' + Arr[0]);
                                          Arr.unshift(Arr.pop());
                                          console.log('Arr[0] nachher: ' + Arr[0]);
                                          console.log('startSequence nachher: ' + JSON.stringify(Arr));
                                          setState(startSequenceKey, JSON.stringify(Arr));
                                          

                                          Dann stell bitte alle zu diesem Zeitpunkt auftretenden Logdatei-Einträge zu Worx und Javascript vollständig hier rein.

                                          S 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          254

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe