Xiaomi Flower und OpenHab


  • versuche gerade zum ersten mal den OpenHab einzurichten und dort erst mal einen Xiaomi flower sensor zu verbinden, leider klappt da gar nichts, habe schon etliche Videos, also auch Forums abgegrast.

    als erstes sollt ihr wissen das der Sensor neben dem Gerät liegt und auch über bluetooth hcitool lescan erkannt wird..

    als Gerät habe ich CoreElec auf dem Odroid N2 laufen + USB Bluetooth Adapter. Openhab läuft als Docker auf dem Coreelec, wenn ich mich auf den Docker befinde docker exec -ti openhab bash und den bl scan wie oben beschrieben anwerfe, dann erkennt er es auch, also denke ich das der BL Stick auch an den Docker weitergeleitet wurde.

    so erstelle ich den Docker..


    Bash
    docker run -d \
            --name openhab \
            --net=host \
    		-e TZ=Europe/Berlin \
    		-e OPENHAB_HTTP_PORT=8082 \
            -v /storage/.kodi/userdata/addon_data/service.openhab/conf:/openhab/conf \
            -v /storage/.kodi/userdata/addon_data/service.openhab/userdata:/openhab/userdata \
            -v /storage/.kodi/userdata/addon_data/service.openhab/addons:/openhab/addons\
            --restart=always \
            openhab/openhab:snapshot


    den Port -e OPENHAB_HTTP_PORT=8082 musste ich anpassen, da der :8080 von Kodi schon verwendet wird.


    in ein paar Videos zu ffhem oder iobroker, habe den binding "bluetooth Low energy" gesehen, den ich aber unter Openhab nicht finden kann, liegt es vielleicht daran?
    dann habe ich hier gelesen https://community.openhab.org/t/xiaomi-mi-fl…nt-daemon/33119 das man den Sensor erst in den mqtt einbindet und dann zu openhab weiterleitet, das war mir aber alles zuviel und ich dachte ich hacke hier erst mal nach.

    wird es überhaupt mit einem Normalen bluetooth stick funktionieren oder braucht man dafür eher den berühmten Zigbee Stick?
    was ich noch bemerkt habe ist, das der bluetooth Empfang nach nur knapp 2 Meter Entfernung verloren geht, wie hat der @horschte dieses Reichweite Problem gelöst

    Update..

    So habe ich das jetzt laufen und es funktioniert mit Openhab 2.4


    Diese Sachen werden im Openhab benötigt. Können aus der PaperUi Installiert werden.

    Bindigs: MQTT Binding
    Misc: Embedded MQTT Broker
    Transformationes: Javascript, JSONPath, RegEx Transformations

    Code: miflora.items
    Group    Pflanzen_Bodenfeuchte  "Pflanzen-Bodenfeuchte [%d %%]"  <rain>
    Number  FicusLight          "Helligkeit [%d Lux]"      <sun>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:light"}
    Number  FicusTemperature    "Temperatur [%.1f °C]"     <temperature>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:temperature"}
    Number  FicusConductivity   "Nährstoffe [%d µS/cm]"    <status>  {channel="mqtt:topic:embedded-mqtt-broker:Ficus:conductivity"}
    Number  FicusMoisture       "Bodenfeuchte [%d %%]"     <rain> (Pflanzen_Bodenfeuchte) {channel="mqtt:topic:embedded-mqtt-broker:Ficus:moisture"}
    Number  FicusBattery        "Batterie [%d %%]"         <batterylevel>        {channel="mqtt:topic:embedded-mqtt-broker:Ficus:battery"}

    und den Nervigen [definition='1','0']log[/definition]
    [WARN ] [moquette.spi.impl.SessionsRepository] - Session does not exist.
    auszublenden

    bearbeiten wir diese Datei..
    \userdata\etc\org.ops4j.pax.logging.cfg

    da rein kommen diese zwei Zeilen rein.

    Code
    log4j2.logger.io.moquette.spi.impl.SessionsRepository.level = ERROR
    log4j2.logger.io.moquette.spi.impl.SessionsRepository.name = io.moquette.spi.impl.SessionsRepository
    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

    5 Mal editiert, zuletzt von Kampfader (8. Oktober 2019 um 09:38)

  • der sensor kommuniziert via bluetooth. du kannst das per bluetooth binding integrieren (hatte bei mir nie so recht funktioniert) oder per mqtt (funktioniert bei mir hervorragend).
    das hier https://github.com/ThomDietrich/m…on#installation ist die lösung die ich nutze.

    wird es überhaupt mit einem Normalen bluetooth stick funktionieren oder braucht man dafür eher den berühmten Zigbee Stick?
    was ich noch bemerkt habe ist, das der bluetooth Empfang nach nur knapp 2 Meter Entfernung verloren geht, wie hat der @horschte dieses Reichweite Problem gelöst

    normaler bluetooth stick reicht.
    ich betreibe nen nuc als smarthome-server. da war der interne bt empfänger auch richtig schlecht (bedingt dadurch, dass er im gehäuse ist). also billigen dongle in china gekauft....jetzt hat das teil 10m (inkl wände) reichweite.

  • habe es heute morgen getestet, aber etwas stimmt nicht mit der config.ini oder python datei von mqtt daemon, hast du die neueren pull requests integriert?

    Muss man den sensor zuerst pairen oder macht er das automatisch?

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • konnte jetzt endlich nach 2 Stunden rum experimentieren den Sensor mit dem miflora-mqtt-daemon verbinden und werte auslesen.
    habe die config.ini komplett entfernt und neu erstellen lassen, dort habe dann nur den Sensor Mac Adresse eingetragen die Zeile freigegeben (vor der zeile "#" entfernt)
    alle anderen Zeilen sind gesperrt, es läuft aber durch.

    und mit meinem BL Stick beträgt die Reichweite Max. einen(1) Meter, muss aber dazu sagen das der Odroid N2 hinter dem Tv Hängt, daneben ein Wlan Router, vielleicht Stört wlan Signal.
    Was hast du @horschte für einen Stick? hat er zufällig eine Antenne dran?

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • muss dich leider nochmal nerven :wacko:

    ich bin jetzt soweit das ich den mqtt broker angelegt habe, auf diesen Broker habe ich dann das Gerät angelegt, wenn ich das System richtig verstehe, dann muss man unter dem Gerät = Pflanze, Channels erstellen. ein Channel ist = ein Sensor (licht, batterie etc)
    und da hänge ich jetzt fest, weil ich schon nicht genau weiß was ich unter "channel Type" auswählen soll, geschweige denn was ich alles unter "MQTT state topic" als auch "MQTT command topic" eintragen soll, ausgelesen habe ich das hier

    python3 /opt/miflora-mqtt-daemon/miflora-mqtt-daemon.py --gen-openhab

    komisch ist auch, das wenn ich einen Thing erstellt habe, keine neuen daten im config/thinks (ftp) erstellt werden

  • ich bin jetzt soweit das ich den mqtt broker angelegt habe, auf diesen Broker habe ich dann das Gerät angelegt, wenn ich das System richtig verstehe, dann muss man unter dem Gerät = Pflanze, Channels erstellen. ein Channel ist = ein Sensor (licht, batterie etc)

    korrekt

    komisch ist auch, das wenn ich einen Thing erstellt habe, keine neuen daten im config/thinks (ftp) erstellt werden

    passiert auch nicht wenn man über paperui geräte erstellt.


    beispiel embedded mqtt broker, mqtt2 binding und manuelle textconfig:

    things datei


    items datei

    Code
    Number:Illuminance      WZ_Drachenbaum_Licht           "Helligkeit [%d Lux]"                                            <sun>                           (Pflanzen_Helligkeit)                                      {channel="mqtt:topic:embedded-mqtt-broker:WZ_Drachenbaum:WZ_Drachenbaum_Licht"}
    Number:Temperature        WZ_Drachenbaum_Temperatur      "Temperatur [%.1f °C]"                                      <temperature>                   (Pflanzen_Temperatur, Raum_Temperatur, Wohnzimmer_Temperatur)                               {channel="mqtt:topic:embedded-mqtt-broker:WZ_Drachenbaum:WZ_Drachenbaum_Temperatur"}
    Number:Dimensionless      WZ_Drachenbaum_Feuchtigkeit    "Bodenfeuchte [%d %%]"                                       <flow>                          (Pflanzen_Bodenfeuchte)                                     {channel="mqtt:topic:embedded-mqtt-broker:WZ_Drachenbaum:WZ_Drachenbaum_Feuchtigkeit"}
    Number      WZ_Drachenbaum_Duenger         "Nährstoffe [%d µS/cm]"                                     <status>                        (Pflanzen_Duenger)                                     {channel="mqtt:topic:embedded-mqtt-broker:WZ_Drachenbaum:WZ_Drachenbaum_Duenger"}
    Number:Dimensionless      WZ_Drachenbaum_Batterie        "WZ_Drachenbaum Pflanzensensor [%d %%]"                                <batterylevel>                  (Batterie)                                  {channel="mqtt:topic:embedded-mqtt-broker:WZ_Drachenbaum:WZ_Drachenbaum_Batterie"}
  • puhh, ist ja mega Komplex mit dem mqtt Gedöns..

    Das heißt, ich muss selber files im ordner thinks als auch items, mit deinem Inhalt, natürlich an mich angepasst erstellen und openhab neu starten?

    P.s neu starten, geht es auch aus dem webif?
    Ich hab es nicht gefunden.

    Kann es aber erst später testen, da ich gerade auf arbeit bin

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • puhh, ist ja mega Komplex mit dem mqtt Gedöns..

    ist es nicht wenn man hintergestiegen ist :thumbup:

    Das heißt, ich muss selber files im ordner thinks als auch items, mit deinem Inhalt, natürlich an mich angepasst erstellen und openhab neu starten?

    korrekt :thumbup:

    P.s neu starten, geht es auch aus dem webif?
    Ich hab es nicht gefunden.

    nö geht nicht von da aus. du kannst dir später aber nen dummy button erstellen mit dem du das system oder auch nur openhab neustarten kannst

  • nach etlichen Stunden, mit Testen, Videos schauen und Haufen an text Lesen, bin ich jetzt geschätzt 1% reicher an Erfahrung, was Openhab angeht :D

    trotzdem verstehe ich einige Sachen nicht..
    Ich arbeite zurzeit mit dem ClassicUI + Visual Studio Code

    als erstes poste ich hier mal meine scripts

    Things

    Items

    Bash: items
    Number   FicusLight          "Helligkeit [%d Lux]"      <sun>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:light"}
    Number   FicusTemperature    "Temperatur [%.1f °C]"     <temperature>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:temperature"}
    Number   FicusConductivity   "Nährstoffe [%d µS/cm]"    <status>  {channel="mqtt:topic:embedded-mqtt-broker:Ficus:conductivity"}
    Number   FicusMoisture       "Bodenfeuchte [%d %%]"     <rain>  {channel="mqtt:topic:embedded-mqtt-broker:Ficus:moisture"}
    Number   FicusBattery        "Batterie [%d %%]"         <batterylevel>        {channel="mqtt:topic:embedded-mqtt-broker:Ficus:battery"}

    sobald ich den Number "FicusLight" aus der items datei zu "Ficus Light" ändere, funktioniert dieser befehl nicht mehr.
    VS Code erstellt mir aber diesen item number "FicusBenjaminLight", habe ich nicht getestet. mache ich aber aus "FicusLight" nur "Light" dann funktioniert es auch, was für mich logisch ist, da sich unter .things der type number auch light heißt.
    was ich aber nicht verstehe, warum es auch mit "FicusLight" funktioniert? diese Zusammensetzung begreife ich einfach noch nicht
    -----
    Mit deinen Daten @horschte, konnte ich ums verrecken die namen z.B ("Helligkeit [%d Lux]") nicht aufs Webif anzeigen lassen, ich habe zwar geschafft das die mqtt werte übertragen worden waren, aber die Namen waren immer diese hier z.B "WZ_Drachenbaum_Licht" dahinter dann der wert vom Pflanzen Sensor.

    dann hätte ich noch eine frage, oder doch mehrere fragen? 8)

    Wie oft liest du die Sensoren pro Tag ab? wenn es jede 5min ist, dann wird die Batterie nicht mehr so lange durchhalten.

    jetzt möchte ich Push nachrichten oder eMail an mein Handy versenden, wenn sich die Feuchtigkeit, Fruchtbarkeit und oder die Batterie verschlechtern. Wo soll ich da ansetzen?

    vielen dank für deine Unterstützung.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.


  • sobald ich den Number "FicusLight" aus der items datei zu "Ficus Light" ändere, funktioniert dieser befehl nicht mehr.
    VS Code erstellt mir aber diesen item number "FicusBenjaminLight", habe ich nicht getestet. mache ich aber aus "FicusLight" nur "Light" dann funktioniert es auch, was für mich logisch ist, da sich unter .things der type number auch light heißt.
    was ich aber nicht verstehe, warum es auch mit "FicusLight" funktioniert? diese Zusammensetzung begreife ich einfach noch nicht

    Es mag keine Leerzeichen!

  • sobald ich den Number "FicusLight" aus der items datei zu "Ficus Light" ändere, funktioniert dieser befehl nicht mehr.

    wie @TehTux bereits schrieb: bei den unique-namen, also das was hinter dem item typ steht (string/switch/number usw) keine leerzeichen und keine sonderzeichen (ausser _ ) nutzen.

    Mit deinen Daten @horschte, konnte ich ums verrecken die namen z.B ("Helligkeit [%d Lux]") nicht aufs Webif anzeigen lassen, ich habe zwar geschafft das die mqtt werte übertragen worden waren, aber die Namen waren immer diese hier z.B "WZ_Drachenbaum_Licht" dahinter dann der wert vom Pflanzen Sensor.

    da muss dir dann irgendein fehler unterlaufen sein, die config ist wirklich korrekt.

    Wie oft liest du die Sensoren pro Tag ab? wenn es jede 5min ist, dann wird die Batterie nicht mehr so lange durchhalten.

    dazu hatte ich schonmal was im forum gepostet. die batterien halten bei einem abfrageintervall von 5-10min ca 2 jahre. natürlich verlängerst du die lebenszeit etwas wenn du das intervall höher setzt. allerdings ist die selbstständige entladung der knopfzellen nach 2 jahren auch schon nicht unerheblich. also erst für ein paar cent batterien kaufen wenn der sensor kurz vorm exitus ist.

    jetzt möchte ich Push nachrichten oder eMail an mein Handy versenden, wenn sich die Feuchtigkeit, Fruchtbarkeit und oder die Batterie verschlechtern. Wo soll ich da ansetzen?

    für mich ist telegram die ideale lösung. einen telegram bot kannst du nämlich auch in gruppenchats zufügen. in die gruppe nimmst du deine familie auf, so dass jeder die nachrichten deines systems bekommt. es muss ja nicht nur von den blumensensoren was kommen.

    das neue telegram binding ist leider noch nicht im addonpaket und muss also manuell "installiert. werden.
    einfach diese datei in deinen addon ordner schieben https://github.com/Belgadon/openh….0-SNAPSHOT.jar

    wie du als erstes einen telegram bot erstellst kannst du unter hier unter "Prerequisites" nachlesen.
    https://github.com/ZzetT/openhab2…d#prerequisites


    wenn du deine chat id und den bot-token hast erstellst du dir in der things datei folgenden eintrag:

    Thing telegram:telegramBot:bot "Telegram Bot" @ "System" [botUsername="DeinBotname", chatIds="deinechat-id", botToken="dein-token"]
    danach in der items datei die passenden items mit channels, welche das sind siehst du in paperui -> configuration -> things -> telegram bot.
    füge den bodenfeuchtewert aller sensoren auch einer gruppe hinzu (in meinem beispiel (Pflanzen_Bodenfeuchte)), das erleichtert später die massenverabeitung in rules, falls du mit dem bodenfeuchtewert noch was machen willst. also in der items bspw :

    Code
    Group Pflanzen_Bodenfeuchte       "Bodenfeuchte [%d %%]"       <flow>
    
    
    Number:Dimensionless      WZ_Efeu_rechts_Feuchtigkeit    "WZ Efeu rechts [%d %%]"                                       <flow>                          (Pflanzen_Bodenfeuchte)                                      {channel="mqtt:topic:embedded-mqtt-broker:WZ_Efeu_rechts:WZ_Efeu_rechts_Feuchtigkeit"}

    abschliessend erstellst du dir eine telegram rule in deiner rule datei:

    gaaanz an den anfang der rules datei einmalig die telegram config
    val telegramAction = getActions("telegram","telegram:telegramBot:bot")

    dann bspw


    damit schreibt der bot dir oder in deinen gruppenchat um 6 und um 18 uhr eine nachricht wenn die bodenfeuchte einer pflanze unter 14% ist.

  • ich war wieder mal an dem openhab dran, leider klappt es zur zeit nicht so richtig..

    wollte zuerst ganz einfache verzögerte text Benachrichtigung an Bot versenden

    mit diesem rules

    Bash
    val telegramAction = getActions("telegram","telegram:telegramBot:bot")
    
    
    rule "sende eine Nachricht alle 10 sec"
    when
       Time cron "*/10 * * * * ?"
    then
       sendTelegram("botname", "Test - Erster Bot!")
    end


    laut .[definition='1','0']log[/definition] wirft er das hier aus.
    2019-09-19 22:17:50.014 [WARN ] [ab.action.telegram.internal.Telegram] - Bot 'botname' not defined; action skipped.

    so sieht meine .things datei aus.
    Thing telegram:telegramBot:bot "Telegram Bot" @ "System" [botUsername="botusername", chatIds="985", botToken="68591:AAE45zYZd2RnHcoY

    ich habe versucht den botnamen z.B "smartflow_bot" als auch den usernamen des bots in. things als auch in .rules zu ändern, klappt auch nicht

    Muss ich in den .things den Username des botes eintragen und in .rules den Botnamen aka @botname_bot

    laut der Seite hier https://www.openhab.org/addons/actions/telegram/ muss ich die services/telegram.cfg anpassen, oder war das bei den älteren openhab Versionen nötig?

    hier zu habe ich noch eine frage

    danach in der items datei die passenden items mit channels, welche das sind siehst du in paperui -> configuration -> things -> telegram bot.

    müssen die telegram things auch zu .items hinzugefügt werden? So sieht die .items datei zur zeit aus.


    Code
    Group    Pflanzen_Bodenfeuchte  "Bodenfeuchte [%d %%]"  <rain>
    
    
    Number   FicusLight          "Helligkeit [%d Lux]"      <sun>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:light"}
    Number   FicusTemperature    "Temperatur [%.1f °C]"     <temperature>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:temperature"}
    Number   FicusConductivity   "Nährstoffe [%d µS/cm]"    <status>  {channel="mqtt:topic:embedded-mqtt-broker:Ficus:conductivity"}
    Number   FicusMoisture       "Bodenfeuchte [%d %%]"     <rain> (Pflanzen_Bodenfeuchte) {channel="mqtt:topic:embedded-mqtt-broker:Ficus:moisture"}
    Number   FicusBattery        "Batterie [%d %%]"         <batterylevel>        {channel="mqtt:topic:embedded-mqtt-broker:Ficus:battery"}

    ich habe jetzt zum testen nur eine Gruppe angelegt, wenn es funktioniert, dann wird der Rest erledigt.

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

    18 Mal editiert, zuletzt von Kampfader (19. September 2019 um 22:46)

  • wollte zuerst ganz einfache verzögerte text Benachrichtigung an Bot versenden

    mit diesem rules

    in der rule ist ein fehler. so wie es jetzt da steht wäre es kompatibel mit dem alten telegram binding. die rule muss so aussehen

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:bot")
    rule "sende eine Nachricht alle 10 sec"
    when
       Time cron "*/10 * * * * ?"
    then
       telegramAction.sendTelegram("botname", "Test - Erster Bot!")
    end

    zeile 6 war bei dir falsch "....telegramaction"

    ich habe versucht den botnamen z.B "smartflow_bot" als auch den usernamen des bots in. things als auch in .rules zu ändern, klappt auch nicht

    Muss ich in den .things den Username des botes eintragen und in .rules den Botnamen aka @botname_bot

    immer den "namen" des bots eintragen....sowohl in rules als auch in things....das was du scheinbar als usernamen meintest.
    kannst ja einfach nochmal nachschauen beim botfather

    Code
    /mybots
    angezeigten bot anklicken
    edit bot

    jetzt wird dir der name, description etc angezeigt. oben der name ist der, den du für openhab brauchst.

    laut der Seite hier http://openhab.org/addons/actions/telegram/ muss ich die services/telegram.cfg anpassen, oder war das bei den älteren openhab Versionen nötig?

    das ist nur fürs ältere telegram action binding, welches du hoffentlich nicht über paperui installiert hast :huh:

    müssen die telegram things auch zu .items hinzugefügt werden? So sieht die .items datei zur zeit aus.

    ja, wenn du interaktionen mit dem bot durchführen willst. siehe screenshots Tvheadend Aufnahmebenachrichtigung an Openhab
    für einfache benachrichtigungen brauchst du das nicht

  • das ist nur fürs ältere telegram action binding, welches du hoffentlich nicht über paperui installiert hast

    habe die aus dem Paper UI entfernt und die du oben Verlinkt hattest, installiert. System reboot gemacht.

    -------

    habe es geschafft den bot jede 10sec eine Nachricht zu versenden, nachdem ich aber die rule von dir angepasst habe, kommt mir immer wieder dieser Fehler entgegen.

    [ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule 'Pflanzen Bodenfeuchte': Conversion = '.'

    Things:


    User-chatid als auch token habe ich erfunden, nicht das ihr auf die idee kommt damit was anzufangen :)

    Items:

    Code
    Group    Pflanzen_Bodenfeuchte  "Pflanzen-Bodenfeuchte [%d %%]"  <rain>
    
    
    Number   FicusLight          "Helligkeit [%d Lux]"      <sun>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:light"}
    Number   FicusTemperature    "Temperatur [%.1f °C]"     <temperature>   {channel="mqtt:topic:embedded-mqtt-broker:Ficus:temperature"}
    Number   FicusConductivity   "Nährstoffe [%d µS/cm]"    <status>  {channel="mqtt:topic:embedded-mqtt-broker:Ficus:conductivity"}
    Number   FicusMoisture       "Bodenfeuchte [%d %%]"     <rain> (Pflanzen_Bodenfeuchte) {channel="mqtt:topic:embedded-mqtt-broker:Ficus:moisture"}
    Number   FicusBattery        "Batterie [%d %%]"         <batterylevel>        {channel="mqtt:topic:embedded-mqtt-broker:Ficus:battery"}

    rules:

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:bot")
    rule "Pflanzen Bodenfeuchte"
    when
       Time cron "*/10 * * * * ?"
    then
    val ficus = FicusMoisture.state
        if  (FicusMoisture.state < 14){
           telegramAction.sendTelegram("SmartHome", "Hallo, Die Birkenfeige im Wohnzimmer hat Durst. Die Bodenfeuchtigkeit beträgt nur noch " + ficus + " %.")
        }
    end


    dann eine frage zu .things
    ist es nicht schlimm, wenn der type number den gleichen namen hat, wie das jsonpath?
    da gab es nämlich auch einen Fehler, nachdem er versucht hat die things datei einzulesen. Die werte werden aber ganz normal angezeigt und Aktualisiert.
    ----
    Jeder der den telegram namen kennt @meinbot_bot kann sich verbinden und mitlesen?

    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!