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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. js-controller 2 jetzt für alle im Stable

NEWS

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

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

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

js-controller 2 jetzt für alle im Stable

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
js-controllerjs-controller 2
556 Beiträge 74 Kommentatoren 166.6k Aufrufe 56 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.
  • J Offline
    J Offline
    joeysch
    schrieb am zuletzt editiert von
    #242

    @apollon77
    Ich habe heute morgen auch eine Meldung bekommen und das Update gemacht.
    Es ist eigentlich alles ohne Fehler durchgelaufen aber jetzt komme ich weder ins iobroker Panel noch über Putty auf den Raspi. Gibt eine Möglichkeit über Windows und die Speicherkarte noch was zu retten oder kann ich wieder von vorn anfangen. Bin leider noch absoluter Laie was Linux und den Raspi angeht.

    Gruß

    ? 1 Antwort Letzte Antwort
    0
    • J joeysch

      @apollon77
      Ich habe heute morgen auch eine Meldung bekommen und das Update gemacht.
      Es ist eigentlich alles ohne Fehler durchgelaufen aber jetzt komme ich weder ins iobroker Panel noch über Putty auf den Raspi. Gibt eine Möglichkeit über Windows und die Speicherkarte noch was zu retten oder kann ich wieder von vorn anfangen. Bin leider noch absoluter Laie was Linux und den Raspi angeht.

      Gruß

      ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #243

      @joeysch prüfe mal, ob dein Raspi im Netzwerk noch erreichbar ist, welche IP er hat. Ansonsten tut reboot gut.
      Wenn das alles nicht hilft, dann Monitor und Tastatur dran, und schauen, was er beim start anzeigt.
      Ohne Fehlermeldungen ist es schwierig, zu helfen...

      1 Antwort Letzte Antwort
      0
      • BBTownB BBTown

        @Shepherd wenn Du die Angaben in "code-tags" packst, dann kann könnte man das ganze besser lesen.

        Wenn Du dir schon die Mühe machst, dann kannst Du auch überlegen, ob Du nicht auch gleich Aliase anlegst und diese in den Scripten verwendest.
        ggf. war es dann das letzte mal, dass Du Scripte anpassen musstest?!

        S Offline
        S Offline
        Shepherd
        schrieb am zuletzt editiert von
        #244

        @BBTown
        Sorry ja war ja nicht so viel an Code zum Glück.

        Wie macht man das mit alias?
        Kenne ich noch nicht in blockly.
        Wäre eine Überlegung wert.
        Muss ich mich mal schlau machen, hast zufällig ne Info Site zum lesen für mich?

        Geht das dann auch in einem Java Script?
        Denn da habe ich eine Umwandlung drin wegen RGB Farben wo auch die Datenpunkt drin stehen zur Übergabe.
        Benutze ich um über jahka Farben einzustellen bei einem mii hub.

        paul53P 1 Antwort Letzte Antwort
        0
        • BBTownB BBTown

          @Shepherd wenn Du die Angaben in "code-tags" packst, dann kann könnte man das ganze besser lesen.

          Wenn Du dir schon die Mühe machst, dann kannst Du auch überlegen, ob Du nicht auch gleich Aliase anlegst und diese in den Scripten verwendest.
          ggf. war es dann das letzte mal, dass Du Scripte anpassen musstest?!

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #245

          @BBTown sagte:

          ob Du nicht auch gleich Aliase anlegst und diese in den Scripten verwendest.

          Das gilt nicht für eigene (virtuelle) Datenpunkte, denn die gehören in Zukunft nach 0_userdata.0 oder javascript.0. Alias-Datenpunkte erstellt man zu Datenpunkten von Adaptern, um unabhängig von der ID-Struktur der Adapter zu sein.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          BBTownB 1 Antwort Letzte Antwort
          0
          • S Shepherd

            @BBTown
            Sorry ja war ja nicht so viel an Code zum Glück.

            Wie macht man das mit alias?
            Kenne ich noch nicht in blockly.
            Wäre eine Überlegung wert.
            Muss ich mich mal schlau machen, hast zufällig ne Info Site zum lesen für mich?

            Geht das dann auch in einem Java Script?
            Denn da habe ich eine Umwandlung drin wegen RGB Farben wo auch die Datenpunkt drin stehen zur Übergabe.
            Benutze ich um über jahka Farben einzustellen bei einem mii hub.

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #246

            @Shepherd sagte:

            ne Info Site zum lesen für mich?

            Alias-Doku

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            ? 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @Shepherd sagte:

              ne Info Site zum lesen für mich?

              Alias-Doku

              ? Offline
              ? Offline
              Ein ehemaliger Benutzer
              schrieb am zuletzt editiert von
              #247

              @paul53 sagte in js-controller 2 jetzt für alle im Stable:

              @Shepherd sagte:

              ne Info Site zum lesen für mich?

              Alias-Doku

              Hi,
              also die Anleitung ist ja toll, wenn man weiß, wie es geht, aber ich mach auch schon die ganze Zeit rum, es steht nirgends, wie ich denn ein Objekt anlege und wie zur Hölle ich eine Zuweisung mache..?

              Man wird ja nicht im Raw rumdoctorn müssen, oder? :-)

              paul53P 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @BBTown sagte:

                ob Du nicht auch gleich Aliase anlegst und diese in den Scripten verwendest.

                Das gilt nicht für eigene (virtuelle) Datenpunkte, denn die gehören in Zukunft nach 0_userdata.0 oder javascript.0. Alias-Datenpunkte erstellt man zu Datenpunkten von Adaptern, um unabhängig von der ID-Struktur der Adapter zu sein.

                BBTownB Offline
                BBTownB Offline
                BBTown
                schrieb am zuletzt editiert von BBTown
                #248

                @paul53
                Das gilt nicht für eigene (virtuelle) Datenpunkte, denn die gehören in Zukunft nach 0_userdata.0 oder javascript.0. Alias-Datenpunkte erstellt man zu Datenpunkten von Adaptern, um unabhängig von der ID-Struktur der Adapter zu sein.

                Ich dachte an eine Kombination.
                Anlegen/verschieben der Datenpunkte in "0_userdata.0"
                Anlegen von Aliase mit Bezug auf diese eigenen Datenpunkte
                Anpassen der Scripte auf Aliase

                Mehraufwand -> Anlegen der Aliaase
                Minderaufwand > bei erneuter Notwendigkeit von Scriptanpassungen

                ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                paul53P 1 Antwort Letzte Antwort
                0
                • BBTownB BBTown

                  @paul53
                  Das gilt nicht für eigene (virtuelle) Datenpunkte, denn die gehören in Zukunft nach 0_userdata.0 oder javascript.0. Alias-Datenpunkte erstellt man zu Datenpunkten von Adaptern, um unabhängig von der ID-Struktur der Adapter zu sein.

                  Ich dachte an eine Kombination.
                  Anlegen/verschieben der Datenpunkte in "0_userdata.0"
                  Anlegen von Aliase mit Bezug auf diese eigenen Datenpunkte
                  Anpassen der Scripte auf Aliase

                  Mehraufwand -> Anlegen der Aliaase
                  Minderaufwand > bei erneuter Notwendigkeit von Scriptanpassungen

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #249

                  @BBTown sagte:

                  Anlegen von Aliase mit Bezug auf diese eigenen Datenpunkte

                  Wozu der Aufwand ?

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  BBTownB 1 Antwort Letzte Antwort
                  0
                  • ? Ein ehemaliger Benutzer

                    @paul53 sagte in js-controller 2 jetzt für alle im Stable:

                    @Shepherd sagte:

                    ne Info Site zum lesen für mich?

                    Alias-Doku

                    Hi,
                    also die Anleitung ist ja toll, wenn man weiß, wie es geht, aber ich mach auch schon die ganze Zeit rum, es steht nirgends, wie ich denn ein Objekt anlege und wie zur Hölle ich eine Zuweisung mache..?

                    Man wird ja nicht im Raw rumdoctorn müssen, oder? :-)

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #250

                    @ilovegym sagte:

                    Man wird ja nicht im Raw rumdoctorn müssen, oder?

                    Du kannst auch ein Skript nutzen.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    crunchipC 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @BBTown sagte:

                      Anlegen von Aliase mit Bezug auf diese eigenen Datenpunkte

                      Wozu der Aufwand ?

                      BBTownB Offline
                      BBTownB Offline
                      BBTown
                      schrieb am zuletzt editiert von
                      #251

                      @paul53 sagte in js-controller 2 jetzt für alle im Stable:

                      Wozu der Aufwand ?

                      Mit deiner Frage stellst Du die komplette Idee des Alias in Frage ...

                      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • BBTownB BBTown

                        @paul53 sagte in js-controller 2 jetzt für alle im Stable:

                        Wozu der Aufwand ?

                        Mit deiner Frage stellst Du die komplette Idee des Alias in Frage ...

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #252

                        @BBTown sagte:

                        Mit deiner Frage stellst Du die komplette Idee des Alias in Frage ...

                        Nein, ich finde die Idee des Alias sehr nützlich: Bei Adapter-Datenpunkten, deren ID-Struktur nicht einheitlich ist bzw. sich beim Geräteaustausch verändern kann. Eigenen Datenpunkten verpasst man gleich ein sinnvolle ID-Struktur, die optimalerweise so aussieht wie die unter alias.0.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        BBTownB 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @BBTown sagte:

                          Mit deiner Frage stellst Du die komplette Idee des Alias in Frage ...

                          Nein, ich finde die Idee des Alias sehr nützlich: Bei Adapter-Datenpunkten, deren ID-Struktur nicht einheitlich ist bzw. sich beim Geräteaustausch verändern kann. Eigenen Datenpunkten verpasst man gleich ein sinnvolle ID-Struktur, die optimalerweise so aussieht wie die unter alias.0.

                          BBTownB Offline
                          BBTownB Offline
                          BBTown
                          schrieb am zuletzt editiert von
                          #253

                          @paul53 JETZT habe ich deinen Ansatz verstanden ... wieso sollte sich ein eigener Datenpunkt verändern?! .... ja, war ne ziemlich blöde Idee von mir :man-facepalming: :sunglasses:

                          ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                          1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @ilovegym sagte:

                            Man wird ja nicht im Raw rumdoctorn müssen, oder?

                            Du kannst auch ein Skript nutzen.

                            crunchipC Abwesend
                            crunchipC Abwesend
                            crunchip
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von crunchip
                            #254

                            @paul53 ich blick da langsam nimmer durch. was hat es dann mit dieser Option auf sich?
                            abe541ef-8a43-4775-881e-dbe69007116a-image.png
                            Durch die enormen Veränderungen, die mehr oder weniger alle auf einmal kamen, wie

                            • Adapter devices.0
                            • alias.0
                            • 0_userdata.0
                              komm ich da leider nicht mehr ganz mit,
                              wie, was angelegt wird, warum und weshalb.
                              Ich seh dadurch eher noch mehr Chaos bei mir im System, als das es vereinfacht werden würde
                              ich glaub, ich mach nen neuen thread dazu auf.
                              Denke, ich bin nicht der einzige der das nicht ganz versteht.

                            umgestiegen von Proxmox auf Unraid

                            paul53P 1 Antwort Letzte Antwort
                            1
                            • crunchipC crunchip

                              @paul53 ich blick da langsam nimmer durch. was hat es dann mit dieser Option auf sich?
                              abe541ef-8a43-4775-881e-dbe69007116a-image.png
                              Durch die enormen Veränderungen, die mehr oder weniger alle auf einmal kamen, wie

                              • Adapter devices.0
                              • alias.0
                              • 0_userdata.0
                                komm ich da leider nicht mehr ganz mit,
                                wie, was angelegt wird, warum und weshalb.
                                Ich seh dadurch eher noch mehr Chaos bei mir im System, als das es vereinfacht werden würde
                                ich glaub, ich mach nen neuen thread dazu auf.
                                Denke, ich bin nicht der einzige der das nicht ganz versteht.
                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von paul53
                              #255

                              @crunchip sagte:

                              ich glaub, ich mach nen neuen thread dazu auf.

                              Das macht Sinn.

                              @crunchip sagte in js-controller 2 jetzt für alle im Stable:

                              Adapter devices.0

                              Der Adapter soll die Erstellung von Geräten und Datenpunkten unter alias.0 ermöglichen, ist allerdings noch in einem frühen Entwicklungsstadium. Ich komme (noch) nicht damit zurecht.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Antwort Letzte Antwort
                              0
                              • apollon77A apollon77

                                @Detlev-Rackow sorry aber mit den Infos kann ich nur die Glaskugel rausholen. Die Unterschiede zwischen 2.1.0 und 2.1.1 sind wenige Zeilen. Ich schlage vor du versuchst es nochmal und schaust genauer drauf und ins log.

                                Wichtig ist das vorher alles sauber beendet ist.

                                Alternativ schau uns log auf der Platte von dem ersten Versuch. Vllt ist da ja was zu finden. Ggf hilft manchmal auch ein reboot Wunder.

                                Detlev RackowD Offline
                                Detlev RackowD Offline
                                Detlev Rackow
                                schrieb am zuletzt editiert von
                                #256

                                @apollon77 Danke für die Rückmeldung. Nach einem weiteren Update läuft 2.1.1 jetzt ohne Probleme. Im ioBroker-Log zum Zeitpunkt der ersten Installation kann ich keinerlei Fehler oder Warnmeldungen finden, es wirkt so als wäre das System normal gelaufen - nur waren die Webseiten gar nicht und die SSH-Shell nur mit langer Wartezeit erreichbar.

                                Vor dem Upgrade hatte ich natürlich iobroker stop eingegeben und dabei keine Fehlermeldung bekommen.

                                Wenn es nur bei mir passierte, ist das Thema erledigt. Es mag sich um ein Problem im Betriebssystem gehandelt haben. Der Raspi 3B kommt ja schnell an Grenzen.

                                1 Antwort Letzte Antwort
                                0
                                • S Offline
                                  S Offline
                                  skokarl
                                  schrieb am zuletzt editiert von skokarl
                                  #257

                                  Was gab es bei dem neuen Javascript Adapter und den Userdatenpunkten nochmal für eine Einschränkung ?
                                  Man kann die nicht anlegen, oder nicht beschreiben ?

                                  Versuche mit Javascript einen DP zu ändern, ( also zu füllen ) haut aber nicht hin ....

                                  IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                                  apollon77A 1 Antwort Letzte Antwort
                                  0
                                  • S skokarl

                                    Was gab es bei dem neuen Javascript Adapter und den Userdatenpunkten nochmal für eine Einschränkung ?
                                    Man kann die nicht anlegen, oder nicht beschreiben ?

                                    Versuche mit Javascript einen DP zu ändern, ( also zu füllen ) haut aber nicht hin ....

                                    apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #258

                                    @skokarl createState geht nicht. setState geht in jedem Fall

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    bahnuhrB 1 Antwort Letzte Antwort
                                    0
                                    • apollon77A apollon77

                                      @skokarl createState geht nicht. setState geht in jedem Fall

                                      bahnuhrB Offline
                                      bahnuhrB Offline
                                      bahnuhr
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #259

                                      @apollon77 sagte in js-controller 2 jetzt für alle im Stable:

                                      @skokarl createState geht nicht. setState geht in jedem Fall

                                      createState geht im javascript Ordner nicht mehr ?

                                      Wie lege ich dann manuell Datenpunkte in dem javascript Ordner an ?

                                      Bitte kurze Rückinfo.


                                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                      Danke.
                                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                      ScreenToGif :https://www.screentogif.com/downloads.html

                                      apollon77A 1 Antwort Letzte Antwort
                                      0
                                      • bahnuhrB bahnuhr

                                        @apollon77 sagte in js-controller 2 jetzt für alle im Stable:

                                        @skokarl createState geht nicht. setState geht in jedem Fall

                                        createState geht im javascript Ordner nicht mehr ?

                                        Wie lege ich dann manuell Datenpunkte in dem javascript Ordner an ?

                                        Bitte kurze Rückinfo.

                                        apollon77A Offline
                                        apollon77A Offline
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #260

                                        @bahnuhr createState geht in 0_userdata.0 nicht!!! Im JavaScript Ordner geht alles wie immer!!

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        bahnuhrB 1 Antwort Letzte Antwort
                                        0
                                        • apollon77A apollon77

                                          @bahnuhr createState geht in 0_userdata.0 nicht!!! Im JavaScript Ordner geht alles wie immer!!

                                          bahnuhrB Offline
                                          bahnuhrB Offline
                                          bahnuhr
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #261

                                          @apollon77 sagte in js-controller 2 jetzt für alle im Stable:

                                          0_userdata.0

                                          Danke für die Info.

                                          Wenn ich das bisher richtig gelesen habe, soll aber doch der ..user.. der Bereich sein in dem man eigene Variablen ablegt.

                                          Wie lege ich da denn per Script Objekte an ?


                                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                          Danke.
                                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                          ScreenToGif :https://www.screentogif.com/downloads.html

                                          paul53P apollon77A 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          309

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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