Ankündigung

Einklappen
Keine Ankündigung bisher.

kleiner Logikversuch

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

    kleiner Logikversuch

    Hallo Forumbesucher,
    versuche mich das erste mal mit einer kleinen Logik für smarthomeNG.
    Bin kein Programmierer und habe nur ein wenig Ahnung von Linux, meine smartVISU mit smarthomeNG läuft seit Version smartVISU 2.5 und smarthome.py 0.9.
    Habe immer wieder aktualisiert so dass ich seit kurzem die Versionen von smartVISU 2.8 und smarthomeNG 1.2 Benutzen kann.
    Dafür an alle beteiligten einen herzlichen Dank für die überaus tolle arbeit.

    Möchte nun eine Logik die das Flurlicht anschaltet wenn ich das Licht im Bad ausschalte. Das Flurlicht wird normal per Bewegungsmelder ein- und nach kurzer Zeit darüber wieder ausgeschaltet. Deshalb reicht mir auch das Einschalten, möchte eben nicht im Dunklen stehen wenn ich aus dem Bad komme da der Bewegungsmelder erst um die Ecke und ein paar Schritte weiter ist.

    Hier mal mein Item dazu:
    Code:
    [EG]
        [[Bad]]
            [[[Deckenlicht]]]
                type = bool
                sim = track
                visu_acl = rw
                enforce_updates = true
                cache = true
                knx_dpt = 1
                knx_listen = 0/1/80
                knx_send = 0/1/80
                badganglicht = EG.Gang.Licht
        [[Gang]]
            [[[Licht]]]
                type = bool
                sim = track
                visu_acl = rw
                enforce_updates = true
                cache = true
                knx_dpt = 1
                knx_listen = 0/1/50
    Hier die logic.conf:
    Code:
    [badganglicht]
        filename = badganglicht.py
        watch_item = EG.Bad.Deckenlicht
    Hier die badganglicht.py

    Code:
    # Ist die Automatik ein, Nacht und wird das Bad Deckenlicht ausgeschaltet soll das Licht Gang eingeschaltet werden
    if sh.EG.Bad.automatik () == 1:
        if sh.env.location.night() == 1:
            if sh.EG.Bad.Deckenlicht() ==1:
                sh.EG.Gang.Licht(1)
    Am liebsten soll das licht auch nur dann angehen wenn es laut env.location.night (Dunkel) ist sowie am liebsten noch einen Schalter in der Visu mit der ich diese Automatik aktivieren kann.
    Also ist Automatik = 1 und env.location.night = 1 und wird EG.Bad.Deckenlicht ausgeschaltet dann soll EG.Gang.Licht = on werden.

    Bitte nicht drüber lachen und ich hoffe man versteht was ich erreichen will. Denke schon seit einigen Monaten und teste und habe mich heute entschlossen die Speziallisten zu fragen da ich hier nicht weiter komme.
    Bei Antworten bedenkt dass ich keine Ahnung vom programmieren und so habe also brauch ich diese quasi für Dummies.
    Bei Fragen kann es etwas dauern und ich hoffe ich bekomme die Daten die benötigt werden vom System.


    Gruß
    Paul
    Zuletzt geändert von bmx; 11.11.2016, 06:55.

    #2
    Hi Paul,
    läuft die Logik denn überhaupt? Hast du mal versucht Log-Einträge mit zu erzeugen?
    sh.EG.Bad.automatik sehe ich nicht in Deinen Items, gehe aber davon aus, dass es da ist.
    sh.EG.Bad.Deckenlicht soll ja aus sein, bzw. wurde gerade ausgeschaltet.
    Du musst smarthome.py neu starten, wenn du die Logik änderst, soviel ich weiß. Zumindest, wenn Du items veränderst.

    Code:
    #!/usr/bin/env python
    #
    logger.info("logic Badganglicht")
    logger.info(trigger['by'])
    logger.info(trigger['source'])
    logger.info(trigger['dest'])
    
    if (sh.EG.Bad.automatik() == True and sh.env.location() == True and sh.EG.Bad.Deckenlicht() == False):[INDENT]sh.EG.Gang.Licht(True)[/INDENT]

    Viele Grüße Marco
    Zuletzt geändert von bmx; 11.11.2016, 06:56.

    Kommentar


      #3
      Hi Paul,

      Wenn Du jetzt SmartHomeNG 1.2 nutzt, kannst Du auch das Backend benutzen oder das erweiterte CLI Plugin nutzen. Da kannst Du Dir Items, Logiken und Scheduler zur Laufzeit anschauen. Neue Items anlegen geht derzeit zur Laufzeit nicht aber Logiken kannst Du neu laden lassen.
      Wichtig für Dich wäre auch, wenn Du SmartHomeNG mal im Debug Modus startest, da kannst Du sehen, was so alles passiert und dort mal nach ERROR oder WARNING schauen. Siehe dazu ins Wiki ...

      Gruß,
      Bernd

      Kommentar


        #4
        Hallo Marco, hallo Bernd,

        schon mal vielen Dank für eure Antworten die ich heute Abend mal prüfen und dann auch berichten werde.
        Mein erster Versuch und das hier gepostete zeigt dass ich leider noch nicht so die Ahnung von Programmierung habe und die Aktivierung meines gehversuchs dazu führte dass ich das EG.Bad.Deckenlicht nicht mehr einschalten konnte, nur die Status anzeige am Schalter, die nur kurz geblinkt hat, zeigte da läuft noch einiges falsch und muss hier auch nicht ausführlicher behandelt werden. Die Lösung von Marco sieht doch ganz gut und logisch aus und wird umgesetzt und getestet.

        Das Backend von SmartHomeNG 1.2 gefällt mir schon ganz gut und das neuladen der Logiken habe ich dort schon gesehen. Wo und wie ich den Debug Modus starte muss werde ich mir noch mal ansehen und hoffe ich werde im Wiki fündig.

        Habe bei vielen der Plugins und Logiken so meine Verständnis Probleme aber ich versuch mich druchzukämpfen und das gute ist ja es gibt hier viele Kompetente Mitglieder die man fragen kann.

        Einen herzlichen Dank und Gruß
        Paul

        Kommentar


          #5
          Hallo Marco, hallo Bernd,

          nach einigen Versuchen gestern Abend funktioniert die kleine Logik so wie sie soll.
          Was mir aber immer noch nicht klar ist wie man SmartHomeNG im Debug Modus startet bei Debian Jessie als Linux System.
          Nochmal herlichen Dank für die prompte und spitzenmäßige Hilfe und das Thema ist nun erledigt.

          Gruß
          Paul

          Kommentar


            #6
            Hi Paul,

            schau doch bitte mal ins Wiki zum Thema Probleme lösen...

            Kommentar

            Lädt...
            X