Ankündigung

Einklappen
Keine Ankündigung bisher.

[SOLVED] Item Aussehalb von Openhab ändern

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

    [SOLVED] Item Aussehalb von Openhab ändern

    Ola,

    Ich versuche gerade meine Videoüberwachung in openhab einzubinden.

    Dazu bastel ich gerade ein Script, welches bei Alarm Ausgelöst wird.

    Nun würde ich gerne mit diesem Script ein Switch Item im openhab steueren:

    Switch MotionDetection_Front_Door "Bewegung an der Haustür"

    Diese Item will ich dann z.B. benutzen um Licht einzuschalten, ein Geräusch abzuspielen oder was auch immer mir noch einfällt ;-)

    Hier brauche ich mal einen Denkanstoß in welche Richtung ich da suchen muss.

    Gruß

    #2
    Hi,

    ich würde mal in Richtung des MQTT Bindings (https://github.com/openhab/openhab/wiki/MQTT-Binding) schauen - damit kannst du von extern Item Status verändern.

    Oder über die Rest API (https://github.com/openhab/openhab/w...ples-REST#curl).

    Hab ich allerdings auch noch nicht im Detail implementiert.
    Grüsse

    Kommentar


      #3
      Hi,

      die Sache mit MQTT erscheint mir etwas kompliziert.

      Bau dein Skript einfach so, dass es "ON" bzw "OFF" auf STDOUT ausgibt. Das Skript rufst du dann über das exec-Binding auf.

      So sieht es dann in deinem Items-File aus:

      Code:
      Switch AlarmXXX    "Alarm XXX"            <Image>       (Gruppe)              { exec="<[/pfad/zum/alarm.skript 60000:REGEX((.*?))]" }

      Kommentar


        #4
        Sorry, da hab ich was falsch verstanden. Du willst das Skript ja nicht von openhab aus aufrufen.

        In diesem Falle würde ich die REST-API nutzen...

        Gruß,
        Thomas

        Kommentar


          #5
          Danke für die Tipps!

          Habe mir das Wiki jetzt noch mal in Ruhe angesehen und die REST-API scheint ein gut gangbarer Weg zu sein. Dann mit CURL das Item updaten, fertig. Sehr schön!

          Danke noch mal für die Vorschläge!

          Kommentar


            #6
            Der Vollständigkeit halber hier meine Items, Rules und Scripts:

            swatch installieren und konfigurieren:
            Download: Simple Log Watcher | Free Security & Utilities software downloads at SourceForge.net
            Tipps: Swatch: The Simple Log Watcher | Linux Magazine

            Config Beispiel: (/etc/swatch.conf)
            Code:
            watchfor   /alarm start/ # string nach dem gesucht werden soll
            	exec /opt/openhab/etc/motdet_alarm_on.sh # script das gestartet werden soll
            
            watchfor   /alarm end/ # string nach dem gesucht werden soll
            	exec /opt/openhab/etc/motdet_alarm_off.sh # script das gestartet werden soll
            init script (daemon file unter /etc/init.d/swatch)
            Code:
            #!/bin/sh -e
            ### BEGIN INIT INFO
            # Provides:          simple logwatcher
            # Required-Start:    $local_fs $remote_fs $network
            # Required-Stop:     $local_fs $remote_fs $network
            # Default-Start:     2 3 4 5
            # Default-Stop:      0 1 6
            # Short-Description: Start or stop the simple logwatcher-daemon.
            # Description:       Enable service provided by simple logwatcher-daemon.
            ### END INIT INFO
            case "$1" in
            	start)
            		/usr/bin/swatch --daemon --config-file=/etc/swatch.conf --tail-file=/var/log/syslog --pid-file=/var/run/swatch.pid
            
            #### file= ist das logfile was untersucht werden soll. In diesem Fall das Syslog file ####
            		;;
            	stop)
            		PID=`cat /var/run/swatch.pid`
            		kill $PID
            		;;
            	*)
            		echo "Usage: $0 { start | stop "}
            		;;
            esac
            
            exit 0
            Item:

            Code:
            Switch	MOTDET_ALARM_FRONT_DOOR	"Bewegung an der Haustür"
            Nun noch die Shell-Scripts:

            motdet_alarm_on.sh (/etc/opt/openhab/etc):

            Code:
            curl --header "Content-Type: text/plain" --request PUT --data "ON" -u meinohuser:meinohpasswort [url]http://MEINEIPADRESSE:8080/rest/items/MOTDET_ALARM_FRONT_DOOR/state[/url]
            motdet_alarm_off.sh (/etc/opt/openhab/etc):

            Code:
            curl --header "Content-Type: text/plain" --request PUT --data "OFF" -u meinohuser:meinohpasswort [url]http://MEINEIPADRESSE:8080/rest/items/MOTDET_ALARM_FRONT_DOOR/state[/url]
            Und zum Schuss noch eine Beispiel Rule:

            Code:
            rule "MotDet Front Door"
            	when 
            		Item MOTDET_ALARM_FRONT_DOOR received update ON
            	then
            		while (MOTDET_ALARM_FRONT_DOOR.state == ON)
            			{
            			sendCommand(FRONTDOOR_FALLTUER, ON)
            			}
            		sendCommand(FRONTDOOR_FALLTUER, OFF)
            		}
            end

            Kommentar

            Lädt...
            X