X-Git-Url: https://git.rvb.name/openhab-process.git/blobdiff_plain/0d4dd2a297fe44d645e64a1e5d48c1f37294c571..944a8ce6739738087f7d3a82a8b09e33b0753bf1:/mqtt-mpd/mqmpd

diff --git a/mqtt-mpd/mqmpd b/mqtt-mpd/mqmpd
index 9867146..595c08d 100755
--- a/mqtt-mpd/mqmpd
+++ b/mqtt-mpd/mqmpd
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+id=`hostname`-$$
+
 if [ "$1" = "stop" ] 
 then
 
@@ -28,7 +30,7 @@ done
 
 # сами остаемся слушать команды
 
-mosquitto_sub -v -h $mqhost -p $mqport -t "$mqcmd/#" -u $mquser -P $mqpassword | while read line
+mosquitto_sub -i mqtt-mpd-$id -v -h $mqhost -p $mqport -t "$mqcmd/#" -u $mquser -P $mqpassword | while read line
 do
 
   template="s!$mqcmd/!!"
@@ -60,24 +62,42 @@ do
   if [[ "$arg" =~ [A-Za-z0-9]+ ]]
   then
 
+    echo "$cmd -> $arg"
+
     case $cmd in
 
     volume)
-        reply=( `$mpccmd volume`)
-        currvolume=`echo ${reply[1]} | sed 's/%//'`
-        if [ "$currvolume" ]
+        if [ "$arg" = "INCREASE" ]
         then
-          if [ "$arg" -gt "$currvolume" ] 
-          then
-            delta=$(( $arg - $currvolume ))
-    	    $mpccmd volume +$delta
-    	  fi
-          if [ "$arg" -lt "$currvolume" ] 
+          $mpccmd volume +5
+        fi
+        if [ "$arg" = "DECREASE" ]
+        then
+          $mpccmd volume -5
+        fi
+        if [[ "$arg" =~ [0-9]+ ]]
+        then
+          reply=( `$mpccmd volume`)
+          currvolume=`echo ${reply[1]} | sed 's/%//'`
+          if [ "$currvolume" ]
           then
-            delta=$(( $currvolume - $arg ))
-    	    $mpccmd volume -$delta
-    	  fi
-  	fi
+            if [ "$arg" -gt "$currvolume" ] 
+            then
+              delta=$(( $arg - $currvolume ))
+      	      $mpccmd volume +$delta
+     	    fi
+            if [ "$arg" -lt "$currvolume" ] 
+            then
+              delta=$(( $currvolume - $arg ))
+      	      $mpccmd volume -$delta
+            fi
+            if [ "$arg" -eq "$currvolume" ] 
+            then
+      	      $mpccmd repeat
+      	      $mpccmd repeat
+            fi
+          fi
+        fi
 	;;  
     status)
   	case $arg in
@@ -94,6 +114,9 @@ do
   		;;
   	esac
   	;;
+    currentnum)
+  	$mpccmd play $arg
+  	;;
     repeat|random|single|consume)
   	$mpccmd $cmd $arg
   	;;